๐ปWEB FrontEnd (66) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Vue Router ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ์ฐธ๊ณ ํ๋ฉด ์ข์ ์ฌ์ดํธ router.vuejs.org/kr/installation.html router.vuejs.org/kr/api/#router-link 1. Routing ๋ผ์ฐํ ์ด๋ ์น ํ์ด์ง ๊ฐ์ ์ด๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค. ๋ผ์ฐํ ์ ์ด์ฉํ๋ฉด ํ๋ฉด ๊ฐ์ ์ ํ์ด ๋งค๋๋ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. ํ๋ก ํธ์๋ ํ๋ ์์ํฌ(๋ทฐ, ๋ฆฌ์กํธ, ์ต๊ธ๋ฌ) ๋ชจ๋ ๋ผ์ฐํ ์ ์ด์ฉํ์ฌ ํ๋ฉด์ ์ ํํ๊ณ ์๋ค. ํ๋ก ํธ์๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์ผ๋ฐ HTMLํ์ผ๋ค๋ก๋ ๋ผ์ฐํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๋ผ์ฐํ ๋ฐฉ์์ ํ์ด์ง ์ด๋์ ๊ตฌํํ ์ ์๋ค. 2. Vue Router ๋ทฐ ๋ผ์ฐํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ทฐ๋ก ๋ง๋ ํ์ด์ง ๊ฐ์ ์์ ๋กญ๊ฒ ์ด๋ํ ์ ์๋ค. ํ๊ทธ ์ค๋ช ํ์ด์ง ์ด๋ ํ๊ทธ ํ๋ฉด์์๋ ๋ก ํ์๋๋ค. ํ์ด.. Vue Componets ํต์ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์·ํ์ ์ปดํฌ๋ํธ ๊ฐ ํต์ 2. ๊ฐ์ ๋ ๋ฒจ์ ์ปดํฌ๋ํธ ๊ฐ ํต์ 3. ๊ด๊ณ ์๋ ์ปดํฌ๋ํธ ๊ฐ ํต์ ํ ํ๋ฉด์ ์๋๋ผ๋ ๊ฐ ์ปดํฌ๋ํธ์ ์ ํจ๋ฒ์๋ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๊ฐ์ ์ง์ ์ ์ผ๋ก ์ฐธ์กฐํ ์ ์๋ค. 1. ์·ํ์ ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ง์ญ ๋๋ ์ ์ญ ์ปดํฌ๋ํธ๋ฅผ ๋ฑ๋กํ๋ฉด ๋ฑ๋ก๋ ์ปดํฌ๋ํธ๋ ์์ฐ์ค๋ฝ๊ฒ ์์ ์ปดํฌ๋ํธ๊ฐ ๋๊ณ , ์์ ์ปดํฌ๋ํธ๋ฅผ ๋ฑ๋กํ ์ธ์คํด์ค๋ ์์ ์ปดํฌ๋ํธ๊ฐ ๋๋ค. 1) ์์์์ ํ์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ ์ ๋ฌ(Pass Props) ํ์ ์ปดํฌ๋ํธ์ ์์ฑ์ props์์ฑ์ ์ ์ํ๊ณ , Vue.component('child-component', { props: ['props์์ฑ์ด๋ฆ'] }); ์์ ์ปดํฌ๋ํธ์ HTML์ฝ๋์ ๋ฑ๋ก๋ child-componen.. Vue Componets ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1) Vue Componets 2) ์ปดํฌ๋ํธ ๋ฑ๋ก Vue Componets 1) Vue Componets ํ๋ฉด์ ์์๋ค(๋ด๋น๊ฒ์ด์ ๋ฐ, ํ ์ด๋ธ, ๋ฆฌ์คํธ, input ๋ฐ์ค ๋ฑ)์ ์๊ฒ ์ชผ๊ฐ์ด ์ปดํฌ๋ํธ๋ก ๊ด๋ฆฌํ๋ค. ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํ๋ฉด ํ๋ฉด์ ๋น ๋ฅด๊ฒ ๊ตฌ์กฐํํ์ฌ ์ผ๊ด์ ์ธ ํจํด์ผ๋ก ๊ฐ๋ฐํ ์ ์๋ค. ์ปดํฌ๋ํธ ๊ฐ์ ๊ด๊ณ(treeํํ)๋ ๋ทฐ์์ ํ๋ฉด์ ๊ตฌ์ฑํ๋๋ฐ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ์น ํ์ด์ง ํ๋ฉด์ ์ค๊ณํ ๋๋ ์ด์ ๊ฐ์ ๊ณจ๊ฒฉ์ ์ ์งํ๋ฉด์ ์ค๊ณ๋ฅผ ํด์ผ ํ๋ค. 2) ์ปดํฌ๋ํธ ๋ฑ๋ก ์ปดํฌ๋ํธ ์ด๋ฆ์ template์์ฑ์์ ์ฌ์ฉํ HTML ์ฌ์ฉ์ ์ ์ ํ๊ทธ ์ด๋ฆ์ ์์ฑํ๋ค. ์ปดํฌ๋ํธ ๋ด์ฉ์๋ ์ปดํฌ๋ํธ ํ๊ทธ๊ฐ ์ค์ ํ๋ฉด์ HTML ์์๋ก ๋ณํ๋ ๋ ํ์๋ ์์ฑ๋ค์ ์์ฑํ๊ณ , ์ธ์คํด์ค.. Vue Instance ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1) Vue Instance 2) Vue Instance ์์ฑ์ 3) Vue Instance ์ต์ ์ค์ 4) Vue Instance ๋ผ์ดํ ์ฌ์ดํด 5) Vue Instance ๋ผ์ดํ ์ฌ์ดํด ์ด๊ธฐํ 1. Vue Instance 1) Vue Instance Vue.js๋ก ํ๋ฉด์ ๊ฐ๋ฐํ๊ธฐ ์ํด ๊ผญ ์์ฑํด์ผ ํ๋ ๊ธฐ๋ณธ ํ์ ๋จ์ new Vue({ ... }); 2) Vue Instance ์์ฑ์ new Vue()๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ Vue๋ฅผ ์์ฑ์๋ผ๊ณ ํ๋ค. Vue์์ฑ์๋ ๋ทฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ฉํ๊ณ ๋๋ฉด ์ ๊ทผํ ์ ์๋ค. Vue๋ก ๊ฐ๋ฐํ ๋ ํ์ํ ๊ธฐ๋ฅ๋ค์ ์์ฑ์์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๊ณ ์ฌ์ฉ์๊ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ฌ์ ์ํ์ฌ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. 3) Vue Instance ์ต์ .. Vue ์์ํ๊ธฐ (+๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ 2. Vue ์์ํ๊ธฐ 3. ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ์ฝ๋ ํ์ธ 1. ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ๋ทฐ๋ก ์น ์ฑ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋๊ตฌ๋ค์ ์ค์น [๋ ๋ง์ ํจํค์ง ์ถ๊ฐ https://ict-nroo.tistory.com/84] ํฌ๋กฌ ๋ธ๋ผ์ฐ์ Vue CLI ์ค์น Node.js ๋ทฐ ๊ฐ๋ฐ์ ๋๊ตฌ(Vue.js devtools, ํฌ๋กฌ ํ์ฅ ํ๋ฌ๊ทธ์ธ) โป Vue CLI ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ์ ๋ฆฌํด๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐพ์๋ค. - kdydesign.github.io/2019/04/22/vue-cli3-tutorial/ 2. Vue ์์ํ๊ธฐ 1) ์ฝ๋ ์์ฑ index.html : ๋ทฐ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ฉ์์ผ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅ์ํค๋ ์ฝ๋ ์์ฑ {{ message }} ํฌ๋กฌ ๋ธ๋ผ์ฐ.. Vue.js๋? ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. 1. Vue.js๋ ๋ฌด์์ธ๊ฐ? UI๋จ์์ ๋ฐ์ดํฐ(๋ชจ๋ธ)์ ๊ด๋ฆฌํ๊ณ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ (ํ๋ฉด์ ์ด์๊ฒ ๋ง๋๋ ํ๋ ์์ํฌ๋ ์๋!!) 1) FrontEnd Framework์ ์ข ๋ฅ - React ํํํ ์ํคํ ์ณ ES6 ํ์ ์ปจ๋ฒํ ํ๋๋ฐ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ๋จน์. ํ์ด์ค๋ถ - Angular Typescript ์ฌ์ฉ ๊ตฌ๊ธ - Vue.js Page์์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐธ์กฐ(script ํ๊ทธ)๊ฐ ๊ฐ๋ฅ. ๊ฐ๋ฒผ์. React์ Angular์ ์ฅ์ ์ ์ฐจ์ฉํด์ ๋ง๋ฆ. ์๋ฆฌ๋ฐ๋ฐ 2) Vue์ ์ฅ์ Angular์์ ์ง์ํ๋ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋์ผํ๊ฒ ์ ๊ณต ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์ React์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ(๋ถ๋ชจ -> ์์)์ ์ฌ์ฉ ๋ค๋ฅธ ํ๋ฐํธ์๋ ํ๋ ์์ํฌ(.. ์ด์ 1 ยทยทยท 4 5 6 7 ๋ค์