有時候想同時(同級)展示多個視圖,而不是嵌套展示,例如創建一個布局,有 sidebar(側導航) 和 main(主內容) 兩個視圖,這個時候命名視圖就派上用場了。你可以在界面中擁有多個單獨命名的視圖,而不是只有一個單獨的出口。如果 router-view 沒有設置名字,那么默認為 default。
如果按照他解釋的這么簡單的話,完全可以在根組件app.vue里直接引入sidebar組件,注冊,渲染。沒必要多此一舉。既然可以在route.config.js里面靈活配置,那就可以靈活的用。官網的例子:
<router-view class="view one"></router-view> <router-view class="view two" name="a"></router-view> <router-view class="view three" name="b"></router-view> const router = new VueRouter({ routes: [ { path: '/', components: { default: Foo, a: Bar, b: Baz } } ] })
在app.vue里面可以多注冊幾個命名視圖,就可以
<template> <div id="app"> <router-view></router-view> <router-view name="nav"></router-view> <router-view name="side"></router-view> </div> </template>
{ path: '/home', name: 'Home', components: { default: Home, nav: Nav,//不給的話就不渲染 side: Side }, children: [ { path: '/', component: Home },//不給的話就匹配不到子組件,就不渲染 { path: 'post', component: Post } ] }
一、簡單的命名視圖(就是點擊不同的路由跳轉后來實現顯示多個組件內容)
效果:
二、嵌套路由視圖(同時滿足嵌套路由的規則,還要滿足視圖的規則)
若有不足請多多指教!希望給您帶來幫助!
總結
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com