剛開始接觸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