λ€μλ λ·° β
λλλ‘ λ·°λ₯Ό μ€μ²©νλ λμ μ¬λ¬ λ·°λ₯Ό λμμ νμν΄μΌ ν λκ° μμ΅λλ€. μλ₯Ό λ€μ΄, sidebar
λ·°μ main
λ·°κ° μλ λ μ΄μμμ λ§λ€ λ κ·Έλ μ΅λλ€. μ΄λ΄ λ λ€μλ λ·°κ° μ μ©ν©λλ€. λ·°μ νλμ μμλ λ§ λλ λμ μ¬λ¬ κ°λ₯Ό λκ³ κ°κ°μ μ΄λ¦μ μ§μ ν μ μμ΅λλ€. μ΄λ¦μ΄ μλ router-view
λ default
λΌλ μ΄λ¦μ΄ μλμΌλ‘ λΆμ¬λ©λλ€.
<router-view class="view left-sidebar" name="LeftSidebar" />
<router-view class="view main-content" />
<router-view class="view right-sidebar" name="RightSidebar" />
λ·°λ μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ λ λλ§λλ―λ‘, μ¬λ¬ λ·°μλ λμΌν λΌμ°νΈμ λν΄ μ¬λ¬ μ»΄ν¬λνΈκ° νμν©λλ€. λ°λμ components
(sκ° λΆμ) μ΅μ
μ μ¬μ©ν΄μΌ ν©λλ€:
const router = createRouter({
history: createWebHashHistory(),
routes: [
{
path: '/',
components: {
default: Home,
// LeftSidebar: LeftSidebarμ μΆμ½ν
LeftSidebar,
// μ΄λ€μ `<router-view>`μ `name` μμ±κ³Ό λ§€μΉλ©λλ€
RightSidebar,
},
},
],
})
μ΄ μμ μ λμνλ λ°λͺ¨λ μ¬κΈ°μμ νμΈν μ μμ΅λλ€.
μ€μ²© λ€μλ λ·° β
λ€μλ λ·°μ μ€μ²© λ·°λ₯Ό μ¬μ©νμ¬ λ³΅μ‘ν λ μ΄μμμ λ§λ€ μ μμ΅λλ€. μ΄λ, μ€μ²©λ router-view
μλ μ΄λ¦μ μ§μ ν΄μΌ ν©λλ€. μ€μ ν¨λ μμλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
/settings/emails /settings/profile
+-----------------------------------+ +------------------------------+
| UserSettings | | UserSettings |
| +-----+-------------------------+ | | +-----+--------------------+ |
| | Nav | UserEmailsSubscriptions | | +------------> | | Nav | UserProfile | |
| | +-------------------------+ | | | +--------------------+ |
| | | | | | | | UserProfilePreview | |
| +-----+-------------------------+ | | +-----+--------------------+ |
+-----------------------------------+ +------------------------------+
Nav
λ μΌλ° μ»΄ν¬λνΈμ λλ€UserSettings
λ λΆλͺ¨ λ·° μ»΄ν¬λνΈμ λλ€UserEmailsSubscriptions
,UserProfile
,UserProfilePreview
λ μ€μ²© λ·° μ»΄ν¬λνΈμ λλ€
μ°Έκ³ : μ΄λ¬ν λ μ΄μμμ νννκΈ° μν HTML/CSSκ° μ΄λ»κ² μκ²Όλμ§λ μ μ μκ³ , μ¬μ©λ μ»΄ν¬λνΈμ μ§μ€ν©μλ€.
μ λ μ΄μμμμ UserSettings
μ»΄ν¬λνΈμ <template>
μΉμ
μ λ€μκ³Ό λΉμ·ν κ²μ
λλ€:
<!-- UserSettings.vue -->
<div>
<h1>μ¬μ©μ μ€μ </h1>
<NavBar />
<router-view />
<router-view name="helper" />
</div>
κ·Έλ° λ€μ μλμ κ°μ λΌμ°νΈ μ€μ μΌλ‘ μ λ μ΄μμμ ꡬνν μ μμ΅λλ€:
{
path: '/settings',
// μμμμλ λ€μλ λ·°λ₯Ό μ¬μ©ν μ μμ΅λλ€
component: UserSettings,
children: [
{
path: 'emails',
component: UserEmailsSubscriptions
},
{
path: 'profile',
components: {
default: UserProfile,
helper: UserProfilePreview
}
}
]
}
μ΄ μμ μ λμνλ λ°λͺ¨λ μ¬κΈ°μμ νμΈν μ μμ΅λλ€.