Vue.js

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

MVVM ํŒจํ„ด์˜ ๋ทฐ๋ชจ๋ธ(ViewModel) ๋ ˆ์ด์–ด์— ํ•ด๋‹นํ•˜๋Š” ํ™”๋ฉด(View)๋‹จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

  • View(html DOM) : ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ํ™”๋ฉด
  • View Model : View์™€ Model์˜ ์ค‘๊ฐ„ ์˜์—ญ์œผ๋กœ DOM Listener์™€ Data Binding์„ ์ œ๊ณตํ•˜๋Š” ์˜์—ญ
  • Model(JS) : ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ์ €์žฅ

 

  • DOM : HTML ์š”์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํŠธ๋ฆฌ
  • DOM Listener : DOM ๋ณ€๊ฒฝ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜์—ฌ ํŠน์ • ๋กœ์ง์„ ์ˆ˜ํ–‰
  • Data Binding : View์— ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ๊ณผ ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”

 

์žฅ์ 

  • ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ๋‚ฎ์Œ
  • React, Angular์— ๋น„ํ•ด ๊ฐ€๋ณ๊ณ  ์„ฑ๋Šฅ์ด ๋น ๋ฆ„
  • React(Virtual DOM), Angular(๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ)์˜ ์žฅ์ ์„ ์ทจํ•จ
  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋ทฐ ๊ตฌ์„ฑ, ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์ด ์‰ฌ์›€

 

๐Ÿ’ก Virtual DOM

ํ™”๋ฉด์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ , Virtual DOM์„ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  DOM์„ ํ•œ๋ฒˆ๋งŒ ์ˆ˜์ •ํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ Œ๋”๋ง์„ ํ•œ๋ฒˆ๋งŒ ํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ๋†’์ธ๋‹ค.

 

 

 

Reference

https://happy-jjang-a.tistory.com/114

+ Recent posts