๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Development/Vue.js

Vue.js - SFC(Single File Component)

by DevIseo 2022. 5. 9.

๐Ÿ””SFC (Single File Component)

|Component (์ปดํฌ๋„ŒํŠธ)

์ƒ์„ฑ์ž ํ•จ์ˆ˜ → ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ.

์ธ์Šคํ„ด์Šค → ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด

  • ๊ธฐ๋ณธ HTML ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ™•์žฅํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์บก์Šํ™” ํ•˜๋Š”๋ฐ ๋„์›€์„ ์คŒ
  • CS์—์„œ๋Š” ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์˜๋ฏธ
  • ์ฆ‰, ์ปดํฌ๋„ŒํŠธ๋Š” ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ค„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์žฌ์‚ฌ์šฉ์„ฑ์˜ ์ธก๋ฉด์—์„œ๋„ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
Vue ์ปดํฌ๋„ŒํŠธ === Vue ์ธ์Šคํ„ด์Šค

 

 

|SFC (Single File Component)

  • Vue์˜ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ํŠน์ง•
  • ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” .vue ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํ•˜๋‚˜์˜ ํŒŒ์ผ ์•ˆ์—์„œ ์ž‘์„ฑ๋˜๋Š” ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฌผ
  • ํ™”๋ฉด์˜ ํŠน์ • ์˜์—ญ์— ๋Œ€ํ•œ HTML, CSS, JavaScript ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ(.vue)์—์„œ ๊ด€๋ฆฌ
  • ์ฆ‰, .vue ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ์‹ฑ๊ธ€ ํŒŒ์ผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹
Vue ์ปดํฌ๋„ŒํŠธ === Vue ์ธ์Šคํ„ด์Šค === .vueํŒŒ์ผ

 

 

|๋‹จ์ผ ํŒŒ์ผ ๊ด€๋ฆฌ

  • ๋‹จ์ผ ํŒŒ์ผ์—์„œ์˜ ๊ฐœ๋ฐœ
    • ์ฒ˜์Œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ ์‹ ๊ฒฝ ์“ธ ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
    • ํ•˜์ง€๋งŒ ์ฝ”๋“œ์˜ ์–‘์ด ๋งŽ์•„์ง€๋ฉด ๋ณ€์ˆ˜ ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค์–ด์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ๋งŽ์€ ๋น„์šฉ ๋ฐœ์ƒ

 

 

|ํ•œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ

    • ์ฒ˜์Œ ๊ฐœ๋ฐœ์„ ์ค€๋น„ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์‹œ๊ฐ„ ์†Œ์š”๊ฐ€ ์ฆ๊ฐ€
    • ํ•˜์ง€๋งŒ ์ดํ›„ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๋ฉฐ ๊ธฐ๋Šฅ ๋ณ„๋กœ ์œ ์ง€ & ๋ณด์ˆ˜ ๋น„์šฉ ๊ฐ์†Œ๊ฐ ๊ธฐ๋Šฅ ๋ณ„๋กœ ํŒŒ์ผ์„ ๋‚˜๋ˆ ์„œ ๊ฐœ๋ฐœ

  • ํ•œ ํ™”๋ฉด ์•ˆ์—์„œ๋„ ๊ธฐ๋Šฅ ๋ณ„๋กœ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์กด์žฌ
    • ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
    • Vue๋Š” ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ œ๊ณต
  • Vue ์ปดํฌ๋„ŒํŠธ๋Š” **const app = new Vue({...})**์˜ app์„ ์˜๋ฏธํ•˜๋ฉฐ ์ด๋Š” Vue ์ธ์Šคํ„ด์Šค
    • ์—ฌ๊ธฐ์„œ ์˜คํ•ดํ•˜๋ฉด ์•ˆ ๋˜๋Š” ๊ฒƒ์€ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ๊ฐœ๋ฐœ์ด ๋ฐ˜๋“œ์‹œ ํŒŒ์ผ ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹˜
    • ๋‹จ์ผ .html ํŒŒ์ผ ์•ˆ์—์„œ๋„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

 

 

|์ •๋ฆฌ

  • Vue ์ปดํฌ๋„ŒํŠธ๋Š” Vue ์ธ์Šคํ„ด์Šค(new Vue({}))์ด๊ธฐ๋„ ํ•จ
  • Vue ์ธ์Šคํ„ด์Šค๋Š” .vue ํŒŒ์ผ ์•ˆ์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ
  • HTML, CSS, ๊ทธ๋ฆฌ๊ณ  JavaScript๋ฅผ .vue๋ผ๋Š” ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ ์•ˆ์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ฐœ๋ฐœ

'Development > Vue.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Vue.js - Babel & Webpack  (0) 2022.05.09
Vue.js - Vue CLI  (0) 2022.05.09
Vue.js - Lifecycle Hooks  (0) 2022.05.07
Vue.js - Template Syntax  (0) 2022.05.07
Vue.js - Vue Instance  (0) 2022.05.07

๋Œ“๊ธ€