# Nuxt์ ํ์ด์ง ๋ผ์ฐํ
๋ทฐ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ผ์ฐํฐ ์ค์ ์ ์๋์ ๊ฐ์ด ์ผ์ผ์ด ํด์ค์ผ ํ๋๋ฐ ๋ฐํด ๋์คํธ์์๋ ํด๋์ ํ์ผ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํฐ๋ฅผ ์๋์ผ๋ก ์์ฑํด ์ค๋๋ค.
// ๋ทฐ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์
์ ๋ผ์ฐํฐ ์ค์ ํ์ผ
new VueRouter({
routes: [
{
path: 'URL ์ฃผ์',
component: URL ์ฃผ์์ ์ ๊ทผํ์ ๋ ํ์ํ ํ์ด์ง ์ปดํฌ๋ํธ
}
],
});
# ํ์ด์ง ๊ธฐ๋ฐ ๋ผ์ฐํฐ ์๋ ์์ฑ
๋์คํธ์์ ์ด๋ป๊ฒ ํ์ผ๊ณผ ํด๋ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ
ํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋์คํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด pages
ํด๋๊ฐ ์กด์ฌํ๋๋ฐ ๊ทธ ์๋์ ๋ค์๊ณผ ๊ฐ์ด ํ์ผ์ ์์ฑํฉ๋๋ค.
์์ ๊ฐ์ด ํ์ผ์ ์์ฑํ๋ฉด URL์ ๊ฐ๊ฐ /
, /login
, /main
์ผ๋ก ์ ๊ทผํ์ ๋ index.vue
, login.vue
, main.vue
์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ํ์๋ฉ๋๋ค. ์ด๋ ๋ ์ด์์ ์ปดํฌ๋ํธ์ <Nuxt/>
๋ผ๋ ํ๊ทธ๊ฐ ์์ด์ผ ํฉ๋๋ค.
<!-- layouts/default.vue -->
<template>
<div>
<Nuxt />
</div>
</template>
์ฌ๊ธฐ์ ์ผ์ผ์ด URL์ ์
๋ ฅํ์ฌ ๋ค์ด๊ฐ๊ธฐ์ ๋ฒ๊ฑฐ๋ก์ฐ๋ฏ๋ก ์๋์ ๊ฐ์ด ํ์ด์ง ์ด๋ ๋งํฌ์ธ <NuxtLink to="/url์ฃผ์">
๋ฅผ ์ถ๊ฐํฉ๋๋ค.
<!-- layouts/default.vue -->
<template>
<div>
<h1>
<NuxtLink to="/">์์</NuxtLink>
<NuxtLink to="/login">๋ก๊ทธ์ธ</NuxtLink>
<NuxtLink to="/main">๋ฉ์ธ</NuxtLink>
</h1>
<Nuxt />
</div>
</template>
์ด์ ๊ฐ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ด ๋์ํฉ๋๋ค.
# ๋ทฐ ๋ผ์ฐํฐ์์ ๋น๊ต
์์์ ์ดํด๋ณธ ๋์คํธ์ ๋ผ์ฐํ ๋ฐฉ์์ ๋ทฐ ๋ผ์ฐํฐ ๋ฐฉ์๊ณผ ๋น๊ตํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
Nuxt.js | VueRouter |
---|---|
<Nuxt> | <router-view> |
<NuxtLink to="/"> | <router-link to="/"> |
์ด์ฒ๋ผ ๋์คํธ๋ ๋ผ์ฐํฐ ์ค์ ํ์ผ์ ์ผ์ผ์ด ์์ฑ ๋ฐ ์ค์ ํ์ง ์์๋ ๋์ด ํธ๋ฆฌํฉ๋๋ค.
TIP
<router-view>
, <Nuxt>
๋ชจ๋ ๋ทฐ ์ปดํฌ๋ํธ์
๋๋ค. ๋ฐ๋ผ์ <RouterView>
์ <router-view>
์ ๊ฐ์ต๋๋ค. <Nuxt>
๋ ๊ทธ๋ผ ๋์ผํ ์ผ๋ฐฅ ๋ค์ด๋ฐ์ผ๋ก ๋ณํํ๋ฉด <nuxt>
๋ก๋ ์ธ ์ ์๊ฒ ์ฃ ? ๐
โ Nuxt Folder Structure Layouts โ