獲取Vue組件的子路由的方式有很多種,下面介紹其中一種方式。
// 首先,在Vue的根實(shí)例中定義子路由 const router = new VueRouter({ routes: [ { path: '/home', component: Home }, { path: '/about', component: About }, { path: '/user', component: User, children: [ { path: 'profile', component: Profile }, { path: 'settings', component: Settings } ] } ] }) // 定義User組件,其中的<router-view>用于顯示子路由 const User = { template: ` <div> <p>User page</p> <ul> <li><router-link to="/user/profile">Profile</router-link></li> <li><router-link to="/user/settings">Settings</router-link></li> </ul> <router-view></router-view> </div> ` } // 然后,在Vue組件中通過(guò)$router獲取子路由 export default { name: 'App', methods: { getChildRoutes() { const matched = this.$router.currentRoute.matched; const childRoutes = matched[matched.length - 1].children; console.log(childRoutes); } } }
在上面的代碼中,我們首先定義了路由,其中User組件擁有子路由。然后定義了User組件,其中的<router-view>用于顯示子路由。最后在Vue組件中,通過(guò)$router獲取子路由。
在getChildRoutes方法中,我們首先通過(guò)this.$router.currentRoute獲取當(dāng)前路由信息。然后獲取matched數(shù)組中最后一項(xiàng),即當(dāng)前組件的路由信息。從該路由信息中獲取子路由數(shù)組,即可得到User組件的子路由。
通過(guò)上述方式,我們就可以輕松地獲取Vue組件的子路由了。