vue-router中的router-view的困擾

剛開始接觸vue的時候有很長一段時間被router-view的渲染困擾着,不知道爲何明明有不少router-link和不一樣的router-view,可是爲何渲染的時候不會出現錯亂呢vue

這是我本身寫的一個demoapp

左側是一級路由,右邊顯示的是一級路由對應的組件右邊中first中含有二級路由ide

 routes: [
    {
      path: '/',
      name: 'first',
      component: first
    },{
      path: '/first',
      name: 'first',
      component: first,
      children:[{
        path:'/one',
        name:'one',
        component:one
      },{
        path:'/two',
        name:'two',
        component:two
      },{
        path:'/three',
        name:'three',
        component:three
      }]
    }

以上是路由的配置,其中first對應一個router-viewspa

<template>
  <div id="app">
    <sidebar />
    <router-view/>
  </div>
</template>

first下邊的子路由對應着一個router-viewcode

<template>
<div id="content">
    <div>這是第一個工做區</div>
    <router-link to="/one">first-one</router-link><br>
    <router-link  to="/two">first-two</router-link><br>
    <router-link to="/three">first-three</router-link>
    <router-view></router-view>
</div>
</template>

 

這樣頁面中存在兩個router-view,可是渲染不會出現混亂緣由是路由的級別不一樣,所處的組件不相同,渲染的時候是在同級進行渲染的component

同級中不存在多個router-view的時候不會出現渲染混亂,可是當同級中出現多個router-view的時候就會出現混亂,解決方法就是使用命名視圖router

<div id="app">
    <sidebar />
    <router-view name="a"></router-view>
    <router-view name="b"></router-view>
  </div>

在路由的配置中,設置對應路徑下對應router-view顯示的組件blog

 routes: [
    {
      path: '/',
      name: 'first',
      components: {
        b: third,
        a: second
      }
    }

 如今設置的根目錄下第一個和第二個視圖分別顯示的是second和third組件three

相關文章
相關標籤/搜索