vue-router命名視圖的意義

官網(wǎng)是這么解釋的:

有時(shí)候想同時(shí)(同級(jí))展示多個(gè)視圖,而不是嵌套展示,例如創(chuàng)建一個(gè)布局,有 sidebar(側(cè)導(dǎo)航) 和 main(主內(nèi)容) 兩個(gè)視圖,這個(gè)時(shí)候命名視圖就派上用場(chǎng)了。你可以在界面中擁有多個(gè)單獨(dú)命名的視圖,而不是只有一個(gè)單獨(dú)的出口。如果 router-view 沒(méi)有設(shè)置名字,那么默認(rèn)為 default。

如果按照他解釋的這么簡(jiǎn)單的話,完全可以在根組件app.vue里直接引入sidebar組件,注冊(cè),渲染。沒(méi)必要多此一舉。既然可以在route.config.js里面靈活配置,那就可以靈活的用。官網(wǎng)的例子:

<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里面可以多注冊(cè)幾個(gè)命名視圖,在route.config.js里不寫的話,那么這個(gè)命名視圖是不會(huì)被渲染的,這樣組件的展示個(gè)數(shù)和排版就是由route配置文件決定的了。
我的demo;

<template>
  <div id="app">
    <router-view name="nav"></router-view>
    <router-view name="side"></router-view>
    <router-view></router-view>
  </div>
</template>


 {
      path: '/home',
      name: 'Home',
      components: {
        default: Home,
        nav: Nav,//不給的話就不渲染
        side: Side
      },
      children: [
        { path: '/', component: Home },//不給的話就匹配不到子組件,就不渲染
        { path: 'post', component: Post }
      ]
 }

調(diào)換組件的位置:

 {
      path: '/products',
      name: 'Products',
      components: {
        default: Products,
        nav: Side,//不給的話就不渲染
        side: Nav //side和nav位置調(diào)換了
      },
      children: [
        { path: '/', component: Products},//不給的話就匹配不到子組件,就不渲染
        { path: 'post', component: Post }
      ]
 }

渲染不同的組件

 {
      path: '/carts',
      name: 'Carts',
      components: {
        default: Carts,
        nav: List,//不給的話就不渲染
        side: Part //side和nav位置調(diào)換了
      },
      children: [
        { path: '/', component: Carts},//不給的話就匹配不到子組件,就不渲染
        { path: 'post', component: Post }
      ]
 }

上面嵌套路由的命名視圖混合在一起使用,children子組件都是渲染到default組件里面的,目前沒(méi)發(fā)現(xiàn)可以渲染到其他命名組件里的方式,有的話歡迎大神拍磚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • vue2有著深度繼承的路由插件,即:vue-router,其中文的API地址。 vue-router與其他的路由(...
    白水螺絲閱讀 17,688評(píng)論 0 17
  • Vue-router學(xué)習(xí)指南 日記:本文按照vue-router官網(wǎng)的知識(shí)結(jié)合例子進(jìn)行分析和講解,搭建工具(vue...
    sunny519111閱讀 1,528評(píng)論 0 6
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,178評(píng)論 0 29
  • 1.也曾孤獨(dú)寂寞纏身,獨(dú)在黑夜等天明 2.也曾想周末晚上丟下瑣碎雜事,葛優(yōu)躺在沙發(fā)上發(fā)愣 3.也曾和別人一樣上下班...
    時(shí)下青年閱讀 406評(píng)論 3 3

友情鏈接更多精彩內(nèi)容