视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue-router命名视图的使用讲解
2020-11-27 22:01:51 责编:小采
文档

有时候想同时(同级)展示多个视图,而不是嵌套展示,例如创建一个布局,有 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 } 
 ] 
}

一、简单的命名视图(就是点击不同的路由跳转后来实现显示多个组件内容)

效果:

二、嵌套路由视图(同时满足嵌套路由的规则,还要满足视图的规则)

若有不足请多多指教!希望给您带来帮助!

总结

下载本文
显示全文
专题