在登錄父組件中嵌套兩個字組件 account1和account2,點擊按鈕后,可以在父組件中切換子組件
- 第一步,創建父組件,父組件中包含兩個子組件
- 注意:需要在父組件中設置占位符,用來放置子組件
<template id="tmp1"> <div> <h1>這是登錄父組件</h1> <router-link to="/login/account1">子組件account1</router-link> <router-link to="/login/account2">子組件account2</router-link> <router-view></router-view> </div> </template> var login = Vue.extend({ template: '#tmp1' })
- 第二步,創建路由規則
- 子組件的路由規則通過childer屬性創建
- 子組件的路由規則中path屬性值不要加 /
var routeObj = new VueRouter({
routes: [
{
path: '/login',
component: login,
children: [
{path: 'account1', component: account1},
{path: 'account2', component: account2},
]
}
]
})
- 整體代碼
<!DOCTYPE html> <!--suppress ALL --> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> </head> <body> <div id="app"> <router-view></router-view> </div> <template id="tmp1"> <div> <h1>這是登錄父組件</h1> <router-link to="/login/account1">子組件account1</router-link> <router-link to="/login/account2">子組件account2</router-link> <router-view></router-view> </div> </template> <script> var account1 = { template: '<h1>這是子組件Account1111</h1>' } var account2 = { template: '<h1>這是子組件Account2222</h1>' } var login = Vue.extend({ template: '#tmp1' }) var routeObj = new VueRouter({ routes: [ { path: '/login', component: login, children: [ {path: 'account1', component: account1}, {path: 'account2', component: account2}, ] } ] }) var vm = new Vue({ el: '#app', data: {}, methods: {}, router: routeObj }) </script> </body> </html>