剛開始接觸vue的時候有很長一段時間被router-view的渲染困擾着,不知道為什么明明有很多router-link和不同的router-view,但是為什么渲染的時候不會出現錯亂呢
這是我自己寫的一個demo

左側是一級路由,右邊顯示的是一級路由對應的組件右邊中first中含有二級路由
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-view
<template>
<div id="app">
<sidebar />
<router-view/>
</div>
</template>
first下邊的子路由對應着一個router-view
<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,但是渲染不會出現混亂原因是路由的級別不同,所處的組件不相同,渲染的時候是在同級進行渲染的
同級中不存在多個router-view的時候不會出現渲染混亂,但是當同級中出現多個router-view的時候就會出現混亂,解決方法就是使用命名視圖
<div id="app">
<sidebar />
<router-view name="a"></router-view>
<router-view name="b"></router-view>
</div>
在路由的配置中,設置對應路徑下對應router-view顯示的組件
routes: [ { path: '/', name: 'first', components: { b: third, a: second } }
現在設置的根目錄下第一個和第二個視圖分別顯示的是second和third組件
