# ๋ทฐ ๋ผ์ฐํฐ
๋ทฐ ๋ผ์ฐํฐ๋ ๋ทฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
# ๋ทฐ ๋ผ์ฐํฐ ์ค์น
ํ๋ก์ ํธ์ ๋ทฐ ๋ผ์ฐํฐ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ CDN ๋ฐฉ์๊ณผ NPM ๋ฐฉ์ 2๊ฐ์ง๊ฐ ์์ต๋๋ค.
# CDN ๋ฐฉ์
NPM์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ง ์๊ณ HTML ํ์ผ์์ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋ CDN ๋งํฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
DANGER
2022๋ 2์ 7์ผ๋ถํฐ Vue.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Vue Router ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ CDN ์ฃผ์๋ Vue 3 ๊ธฐ๋ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋๋ฅผ ๋ค๊ณ ์ต๋๋ค. ๋ฐ๋ผ์, Vue 2๋ก ํ์ตํ๊ณ ๊ฐ๋ฐํ์๋ ๋ถ๋ค์ ์์ ๊ฐ์ด 3.x ๋ฒ์ ์ ์ฌ์ฉํด ์ฃผ์ธ์ ๐
์ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ถ๊ธํ์๋ฉด ์๋ ๊ธ์ ์ฐธ๊ณ ํด ๋ณด์ธ์ ๐
Vue 3, ๊ธฐ๋ณธ ๋ฒ์ ์ด ๋๋ค(ํด๋ฆญ) (opens new window)
# NPM ๋ฐฉ์
Vue CLI๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ฑฐ๋ NPM ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
TIP
- Vue 2 ์ฌ์ฉ์ : ๋ทฐ ๋ผ์ฐํฐ ๋ฒ์ 3 ์ฌ์ฉ
- Vue 3 ์ฌ์ฉ์ : ๋ทฐ ๋ผ์ฐํฐ ๋ฒ์ 4 ์ฌ์ฉ
# ๋ทฐ ๋ผ์ฐํฐ ๋ฑ๋ก
๋ทฐ ๋ผ์ฐํฐ๋ฅผ ์ค์นํ๊ณ ๋๋ฉด ์๋ ์ฝ๋์ ๊ฐ์ด ๋ผ์ฐํฐ ์ธ์คํด์ค๋ฅผ ํ๋ ์์ฑํ๊ณ ๋ทฐ ์ธ์คํด์ค์ ๋ฑ๋กํฉ๋๋ค.
# ๋ทฐ ๋ผ์ฐํฐ ์ต์
์์ ๊ฐ์ด ๋ผ์ฐํฐ๋ฅผ ๋ฑ๋กํ๊ณ ๋๋ฉด ๊ทธ ๋ค์์ ํ ์ผ์ ๋ผ์ฐํฐ์ ์ต์ ์ ์ ์ํ๋ ์ผ์ ๋๋ค. ๋๋ถ๋ถ์ SPA ์ฑ์์๋ ์๋์ ๊ฐ์ด 2๊ฐ ์ต์ ์ ํ์๋ก ์ง์ ํฉ๋๋ค.
- routes : ๋ผ์ฐํ ํ URL๊ณผ ์ปดํฌ๋ํธ ๊ฐ ์ง์
- mode : URL์ ํด์ฌ ๊ฐ ์ ๊ฑฐ ์์ฑ
๊ทธ๋ผ ์ ์ต์ ์ผ๋ก ๋ผ์ฐํฐ๋ฅผ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ฝ๋๋ ๋ผ์ฐํ
์ ํ ๋ URL์ #
๊ฐ์ ์ ๊ฑฐํ๊ณ , URL ๊ฐ์ด /login
๊ณผ /home
์ผ ๋ ๊ฐ๊ฐ ๋ก๊ทธ์ธ ์ปดํฌ๋ํธ์ ํ ์ปดํฌ๋ํธ๋ฅผ ๋ฟ๋ ค์ค๋๋ค.
# router-view
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ์ฐฝ์์ URL์ด ๋ณ๊ฒฝ๋๋ฉด, ์์์ ์ ์ํ routes ์์ฑ์ ๋ฐ๋ผ ํด๋น ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋ฟ๋ ค์ง๋๋ค. ์ด ๋ ๋ฟ๋ ค์ง๋ ์ง์ ์ด ํ
ํ๋ฆฟ์ <router-view>
์
๋๋ค.
<div id="app">
<router-view></router-view> <!-- LoginComponent ๋๋ HomeComponent -->
</div>
์์์ ์ ์ํ ๋ผ์ฐํ
์ต์
๊ธฐ์ค์ผ๋ก /login
์ ๋ก๊ทธ์ธ ์ปดํฌ๋ํธ๋ฅผ /home
์ ํ ์ปดํฌ๋ํธ๋ฅผ ํ๋ฉด์ ํ์ํฉ๋๋ค.
# router-link
์ผ๋ฐ์ ์ผ๋ก ์น ํ์ด์ง์์ ํ์ด์ง ์ด๋์ ํ ๋๋ ์ฌ์ฉ์๊ฐ url์ ๋ค ์ณ์ ์ด๋ํ์ง ์์ต๋๋ค. ์ด ๋ ํ๋ฉด์์ ํน์ ๋งํฌ๋ฅผ ํด๋ฆญํด์ ํ์ด์ง๋ฅผ ์ด๋ํ ์ ์๊ฒ ํด์ค์ผ ํ๋๋ฐ ๊ทธ๊ฒ ๋ฐ๋ก <router-link>
์
๋๋ค.
<router-link to="์ด๋ํ URL"></router-link>
์ค์ ์ฝ๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<div>
<router-link to="/login"></router-link>
</div>
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ํ๋ฉด์์๋ <a>
ํ๊ทธ๋ก ๋ณํ๋์ ๋์ต๋๋ค. ๋ฐ๋ผ์ <a>
ํ๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด /login
URL๋ก ์ด๋ํฉ๋๋ค.
โ Event Emit Axios โ