์ฝ๋ฉ ์์จํ์ต Vue.js ํ๋ฐํธ์๋ ๊ฐ๋ฐ ์ ๋ฌธ (~3.3์ฅ)
- ๊ฐ์๋งํฌ: https://www.youtube.com/watch?v=hLaikZ_vy28
vue
- ํ๋ก๊ทธ๋ ์๋ธ ํ๋ ์์ํฌ
- MVVM ์ํคํ ์ฒ
- ๋ทฐ์ ์ง์คํ๋ ํ๋ ์์ํฌ
vue ํน์ง?
- ๊ฐ์ DOM ์ฌ์ฉ
- ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ (๋ทฐ↔๋ทฐ๋ชจ๋ธ↔๋ชจ๋ธ)
- ์ค์น๊ฐ๋จ
์ค์น๊ด๋ จ
- node.js : ๋ทฐ๊ฐ ๋ ธ๋ ๊ธฐ๋ฐ์ผ๋ก ์คํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ผ ํ์ํจ
- Vue CLI : ์๋์ฐ, ๋งฅ ๋ฑ์ ํฐ๋ฏธ๋์์ ์ฌ์ฉ์ ๋ช ๋ น์ด ์ ๋ ฅ์ PC๊ฐ ๊ทธ์๋ง๋ ๊ธฐ๋ฅ ์คํํด์ฃผ๋ ์ฒ๋ฆฌํจ
- ๋น์ฃผ์ผ์คํ๋์ค : ๊ฐ๋ฐํด
- Vue - Official : ๋ทฐ์์ ์ ๊ณตํ๋ ๋ฌธ๋ฒ ๋ฐ ํ์ผ์ ์ธ์ ๊ฐ๋ฅํ๋๋ก ํ๋ ์ต์คํ ์
- Live Server : HTML ์ค์๊ฐ ๋ฐ์
- Prettier - Code formatter : ์ฝ๋ ์ด์๊ฒ ์ ๋ฆฌ
- ํฌ๋กฌํ์ฅํ๋ก๊ทธ๋จ : Vue.js devtools
๊ฐ๋ฐ๋ฐฉ์
- CDN (์ฝํ
์ธ ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๋ฌํ๊ธฐ ์ํด ์ฌ๋ฌ ๋
ธ๋๋ฅผ ๊ฐ์ง ๋คํธ์ํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ์ ๊ณตํ๋ ์์คํ
)
- <script src="https://unpkg.com/vue@3.5.13/dist/vue.global.js"></script> ์ ์ถ๊ฐํ์ฌ ๋ฐ๋ก ๊ฐ๋ฐ ๊ฐ๋ฅ
- npm create vue@latest : ๋ทฐ ํ๋ก์ ํธ ์ค์
- npm install : npm create ์ผ๋ก ์์ฑ๋ package.json ํ์ผ ์ฐธ์กฐํด ํจํค์ง ์ค์น
- npm run dev : ๋ทฐ ์ดํ๋ฆฌ์ผ์ด์ ์คํ
- npm ์ด์ฉํ์ฌ ๋ทฐ ์ ํ๋ฆฌ์ผ์ด์
์์ฑ
NPM (node.js ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ)
CDN vs NPM
- cdn ์ ๋น ๋ฅด๊ฒ ์ ์ฉ ๊ฐ๋ฅ but ์์กด์ฑ ๊ด๋ฆฌ(=ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ)๋ฅผ ์ง์ ํด์ผํจ. ์๋น์ค ์ปค์ง๊ฒฝ์ฐ ๋๊ฐ
- npm ์ ์์กด์ฑ ๊ด๋ฆฌ ์ฝ๊ณ , ํฐ ํ๋ก์ ํธ์์๋ ๊ฐ๋ฐํ๊ธฐ ํธํจ *
์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ๊ตฌ์กฐ (์ค์ํ๊ฒ ์์ฃผ)
- package.json
- ์ค์ฌ! ๊ธฐ๋ณธ์ ๋ณด ๋ฐ ์์กด์ฑ ๋ชจ๋ ์ ๋ณด, ์คํฌ๋ฆฝํธ ๋ช ๋ น ์ ๋ณด
- npm run dev ์คํํ ์ ์๋ ๊ทผ๊ฑฐ๊ฐ script ๋ถ๋ถ์ dev ์์ฑ์ด ์์ด ์คํ ๋๋ ๊ฒ
- vite ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์คํํด ๊ฐ๋ฐ ์๋ฒ ๊ตฌ๋
- index.html
- npm run dev ์คํ์ ํด๋นํ์ผ ๋จผ์ ๋ก๋.
- main.js
- ๋ทฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐํํ๊ณ ๊ตฌ์ฑํ๋ ์ญํ . (index.html ์์ ์คํ)
- App.vue
- ์ปดํฌ๋ํธ (SFC: Single File Components)
- ๋ฌธ๋ฒ
- <script> : ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ๋ก์ง ๋ถ๋ฌ์ด
- <template> : html ํ๊ทธ ์์ฑ
- <style> : css ์ ์ฉ
๋๋ ํฐ๋ธ ์ฌ์ฉ
์ ๋์ฌ -v ๊ฐ ๋ถ์. <template> ์์ญ์์ ์ฌ์ฉ (https://vuejs.org/api)
v-html, v-text, v-pre, v-bind...
์ถ์ฒ
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=341090647&start=pebook