# Nuxt์ ๋ ์ด์์ ์ปดํฌ๋ํธ
๋ ์ด์์ ์ปดํฌ๋ํธ๋ ํ์ด์ง์ ๋ ์ด์์์ ์ก์์ฃผ๋ ์ญํ ์ ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์๋ฏธํฉ๋๋ค.
# ๋ ์ด์์ ์ปดํฌ๋ํธ ์๊ฐ
nuxt ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋์ ์๋์ ๊ฐ์ด ํ์ด์ง ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ๊ณ ๋๋ฉด layouts/default.vue
์ปดํฌ๋ํธ๊ฐ ํ์ด์ง์ ๋ ์ด์์์ ๊ตฌ์ฑํด ์ค๋๋ค.
URL์ /login
๊ณผ /main
์ ๊ฐ๊ฐ ์ ๊ทผํ๋ฉด login.vue
์ปดํฌ๋ํธ์ main.vue
์ปดํฌ๋ํธ์ ์ ์๋ ๋ด์ฉ์ด ํ๋ฉด์ ํ์๋ ๊ฒ์
๋๋ค. ์ด ๋ ์ฝ๋๊ฐ ์๋์ ๊ฐ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
<!-- login.vue -->
<template>
<div>
<h1>login ํ์ด์ง</h1>
<form></form>
</div>
</template>
<!-- main.vue -->
<template>
<div>
<h1>main ํ์ด์ง</h1>
<main></main>
</div>
</template>
์ด์ ๊ฐ URL๋ก ์ ๊ทผํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฉด์ ํ์๋๋ ์ปดํฌ๋ํธ๋ layouts/default.vue
์ปดํฌ๋ํธ์
๋๋ค.
<!-- default.vue -->
<template>
<div>
<Nuxt />
</div>
</template>
์ ์ปดํฌ๋ํธ์ <Nuxt/>
๊ฐ ๋ฐ๋ก ํน์ URL์ ํด๋นํ๋ ํ์ด์ง ์ปดํฌ๋ํธ๋ฅผ ๋ฟ๋ฆฌ๋ ์์ญ์
๋๋ค. /login
๊ณผ /main
์ ๊ฐ๊ฐ ์๋์ ๊ฐ์ด ํ์๋ ๊ฒ์
๋๋ค.
<!-- '/login'์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ -->
<template>
<div>
<!-- ๋ก๊ทธ์ธ ์ปดํฌ๋ํธ ๋ด์ฉ -->
</div>
</template>
<!-- '/main'์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ -->
<template>
<div>
<!-- ๋ฉ์ธ ์ปดํฌ๋ํธ ๋ด์ฉ -->
</div>
</template>
์ด ๋ ํ์ด์ง๋ง๋ค ๋ฐ๋ณต๋๋ UI ์์ญ์ธ ํค๋๋ฅผ ๋ ์ด์์ ์ปดํฌ๋ํธ์ ์๋์ ๊ฐ์ด ์ ์ํ ์ ์์ต๋๋ค.
<!-- default.vue -->
<template>
<div>
<h1>{{ $route.name }} ํ์ด์ง</h1>
<Nuxt />
</div>
</template>
์ด์ ๊ฐ ํ์ด์ง ์ปดํฌ๋ํธ(page ํด๋์ ์๋ ์ปดํฌ๋ํธ)์๋ ํค๋ ๋ด์ฉ์ ์์ฑํ์ง ์๊ณ ๋ฐ๋ก ํด๋น ํ์ด์ง์ UI ์์์ ์ง์คํ ์ ์์ต๋๋ค.
<!-- login.vue -->
<template>
<form></form>
</template>
<!-- main.vue -->
<template>
<main></main>
</template>
# ์ปค์คํ ๋ ์ด์์
์์์ ๋ค๋ฃฌ ๊ธฐ๋ณธ ๋ ์ด์์ default.vue
์ด์ธ์๋ ๋ค๋ฅธ ๋ ์ด์์์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋จผ์ ๋ ์ด์์ ํด๋์ ์๋ก์ด ๋ทฐ ํ์ผ์ ํ๋ ์์ฑํฉ๋๋ค.
<!-- layouts/blog.vue -->
<template>
<div>
<nav>๋ค๋น๊ฒ์ด์
์์ญ</nav>
<Nuxt />
</div>
</template>
์ด์ ์ ๋ ์ด์์์ ์ฌ์ฉํ ํ์ด์ง ์ปดํฌ๋ํธ์์ ์๋์ ๊ฐ์ ์์ฑ์ ์ถ๊ฐํฉ๋๋ค.
// pages/main.vue
export default {
layout: 'blog'
}
โ Automatic Routing Data Fetching โ