Vue.js
๐ Vue.js
๐ Vue.js
Vue.js ๋
- UI๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง JavaScript Framework ( Progressive Framework )
- MVVM ํจํด์ ๋ฐ๋ฅด๋ฉฐ, ์ดํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ณผ UI ๋ถ๋ฆฌ๋ฅผ ์ํด ์ค๊ณ๋์๋ค.
- ๋ค๋ฅธ Framework ( Angular, React ) ์ ๋น๊ตํ์ ๋ ์๋์ ์ผ๋ก ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ค.
- ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ( Angular ) ์ ๋์ผํ๊ฒ ์ ๊ณต, ๊ทธ๋ฌ๋ ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ ( ๋ถ๋ชจ -> ์์ ) ( React )์ ์ฌ์ฉ
Vue.js ํน์ง
- Approachable ( ์ ๊ทผ์ฑ )
- Versatile ( ์ ์ฐ์ฑ )
- Performant ( ๊ณ ์ฑ๋ฅ )
Vue.js ์ฅ์
- ๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋ฌ๋ฆฌ ์ ์ฐํ๊ณ ๊ฐ๋ณ๋ค
- angular.js ์๋ ๋ฌ๋ฆฌ ๊ธฐ์กด์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ UI๋ง ์ ์ฉํ๋๊ฒ๋ ๊ฐ๋ฅ
- SPA ( Single Page Application : ๋จ์ผ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ) ๊ตฌ์ฑ์ ์ํด ํ์ํ ๋ผ์ฐํฐ ๊ธฐ๋ฅ๋ ์ง์
- react.js ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ DOM์ ์ง์ํ์ฌ ๋น ๋ฅธ UI ๋๋๋ง์ด ๊ฐ๋ฅ
React, Angular ์ ์ฅ์ ์ ๊ฐ์ง
Angular์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ + React์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ์ฅ์ ์ ๋ชจ๋ ๊ฒฐํฉํ ํ๋ ์ ์ํฌ
-
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
- ํ๋ฉด์ ํ์๋๋ ๊ฐ๊ณผ ํ๋ ์์ํฌ์ ๋ชจ๋ธ ๋ฐ์ดํฐ ๊ฐ์ด ๋๊ธฐํ ๋์ด ํ์ชฝ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ค๋ฅธ ํ์ชฝ๋ ์๋์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฒ
-
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
- ์ปดํฌ๋ํธ ๋จ๋ฐฉํฅ ํต์ ์ ์๋ฏธํ๋๋ฐ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ํญ์ ์์ ์ปดํฌ๋ํธ์์ ํ์ ์ปดํฌ๋ํธ ๋ฐฉํฅ์ผ๋ก ์ ๋ฌํ๊ฒ๋ ๊ตฌ์กฐํ ๋์ด ์๋ ๊ฒ์ ์๋ฏธ
MVVM ํจํด ์ด๋
MVVM ( Model-View-ViewModel ) ์ UI ๋ฐ ๋น UI ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํ UI ์ํคํ
์ณ ๋์์ธ ํจํด์ด๋ค.
๊ฐ๋จํ ๋งํด์ ํ๋ฉด ์๋จ์ ํ๋ฉด ๋์ ๊ด๋ จ ๋ก์ง๊ณผ ๋ท๋จ์ DB ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ์๋ฒ ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ ,
๋ท๋จ์์ ๋์ด์จ ๋ฐ์ดํฐ๋ฅผ Model์ ๋ด์ View๋ก ๋์ด๊ฐ๋ ์ค๊ฐ ์ง์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
- Model + View + ViewModel
-
Model
- ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด
-
View
- ์นํ์ด์ง์ DOM ( ๋ฆฌ์ผ DOM )
-
ViewModel
- ์ฐ๊ฒฐ, ์๋ ๋ฐ์ธ๋ฉ, ์๋ฐฉํฅ ํต์ ๊ฐ๋ฅ
- Listener๊ฐ ๊ฐ์ํ๊ณ ์๋ค๊ฐ ๋ณํ๊ฐ ์์ผ๋ฉด ์๋
- ๋ฆฌ์ผ DOM์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ DOM์ ๋ง๋ฌ
๊ธฐ์กด์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก view์ ํด๋นํ๋ DOM์ ์ ๊ทผํ๊ฑฐ๋ ์์ ํ๊ธฐ ์ํด jQuery์ ๊ฐ์ Library๋ฅผ ์ด์ฉํ๋ค.
Vue๋ view์ Model์ ์ฐ๊ฒฐํ๊ณ ์๋์ผ๋ก ๋ฐ์ธ๋ฉํ๋ฏ๋ก ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.