Web/Vue.js

Vue.js ํŠน์ง•

ghtis1798 2021. 5. 19. 14:09

๐Ÿ”ธVue.js ํŠน์ง•

SPA

  • ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋กœ ๋™์ž‘ํ•˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

Single Page Aplication์œผ๋กœ ํ•œ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋ชจ๋“  ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์„ ์“ฐ๋ฉด ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์ด ์ฆ๊ฐ€ํ•œ๋‹ค. ๋น ๋ฅด๊ฒŒ ํ™”๋ฉด์ด ์ „ํ™˜๋˜๋Š” ๋Š๋‚Œ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์‡ผํ•‘๋ชฐ ๋“ฑ์˜ ์‚ฌ์ดํŠธ์—์„œ ๊ตฌ๋งค์œจ์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

  • ๊ธฐ์กด ๋ฐฉ์‹

๊ธฐ์กด ๋ฐฉ์‹์€ ์›น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ์ด๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ , ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•œ ๋กœ์ง ๊ฒฐ๊ณผ๋ฅผ ์›น์— ์ „๋‹ฌํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ๋žœ๋”๋ง ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • SPA

SPA๋Š” ์›น์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ Vue๋กœ ์ „๋‹ฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ Vue์—์„œ ์ฒ˜๋ฆฌํ•œ ๋’ค ๋‹ค์‹œ ๋žœ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์€ ์„œ๋ฒ„๊ฐ€ ์ •๋ง ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ ํ”„๋ก ํŠธ์—์„œ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์ด ๋งค๋„๋Ÿฌ์›Œ์ง„๋‹ค.

SPA ์žฅ์ 

  1. ์ž์—ฐ์Šค๋Ÿฌ์šด ์›น ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ
  2. ์„œ๋ฒ„์™€ ํ”„๋ก ํŠธ์—”๋“œ ์—ญํ•  ๋ถ„๋‹ด ๋ช…ํ™•
  3. ๋„ค์ดํ‹ฐ๋ธŒ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ

Simple

์ž…๋ฌธ์ž๋„ ์‰ฝ๊ฒŒ ์›น ํŽ˜์ด์ง€์— ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ฐฐ์šฐ๊ณ  ์‰ฝ๊ณ , ๊ฐ€๋ฒผ์šด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘์— ์šฉ์ดํ•จ

MVVM

Vue๋Š” Model-View-ViewModel ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. ์ด๋Š” Model(Vue ์•ˆ์˜ ๋ฐ์ดํ„ฐ)๊ณผ View(HTML ์š”์†Œ) ์‚ฌ์ด์—์„œ ViewModel(View์™€ Model์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ• ๊นŒ)๋กœ ๋‚˜๋ˆ„์–ด ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

MVVM๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๋‹จ๊ณ„ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  1. ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€? (Model)
  2. ํ‘œ์‹œ๋˜๋Š” ์š”์†Œ๋Š” ๋ฌด์—‡์ธ๊ฐ€? (View)
  3. ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”๊ฐ€? (ViewModel)

MVCํŒจํ„ด

  1. Model : Data์™€ ๊ด€๋ จ๋œ ๋กœ์ง ๋‹ด๋‹น
  2. View: ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• 
  3. Control: View์™€ Model ์‚ฌ์ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

Vue ์ž‘์„ฑ ์ˆœ์„œ

  1. ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ
  2. ํ‘œ์‹œํ•  ์š”์†Œ ์ค€๋น„
  3. ์—ฐ๊ฒฐํ•˜๊ธฐ

์ฃผ์š” ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ

  • {{ ๋ฐ์ดํ„ฐ }} : ๋ฐ์ดํ„ฐ ํ‘œ์‹œ
  • v-bind : ์š”์†Œ์˜ ์†์„ฑ์„ ๋ฐ์ดํ„ฐ๋กœ ์ง€์ •
  • v-model : ์ž…๋ ฅํผ๊ณผ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ
  • v-on : ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
  • v-if : ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ‘œ์‹œ
  • computed : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ ๊ณ„์‚ฐ
  • watch : ๋ฐ์ดํ„ฐ ๋ณ€ํ™” ๊ฐ์‹œ
  • transition : ํ‘œ์‹œ/๋น„ํ‘œ์‹œ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฒ˜๋ฆฌ
  • component : ์ปดํฌ๋„ŒํŠธ ์กฐ๋ฆฝ

์ฐธ๊ณ ์„œ์ ) Vue.js ์ž…๋ฌธ - Yoshinao Mori ์ €, ์‹ ๋Œ€ํ˜ธ ์˜ฎ๊น€

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

Vue .js ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•˜๊ธฐ  (0) 2021.05.22