vue 中 命名视图的用法实例详解


Posted in Javascript onAugust 14, 2019

今天主要记录  vue中命名视图的用法

先奉上官网网址:https://router.vuejs.org/zh/guide/essentials/named-views.html

一般情况下,一个页面里面可能有多个组件,比如侧边栏,内容区,侧边栏是一个组件、内容区是一个组件,我们普遍会将两个组件作为子组件添加到主页面中,因为页面中只有一个

router-view视图,那么问题来了,怎么让一个页面中有多个视图呢,拥有多个视图,很随意,多写几个router-view标签就行了,但是每个router-view视图里面显示的相同的内容,这是一个问题,多写几个视图好像没什么用,那么怎么让一个页面中的多个视图显示不同的内容呢?

下面就来介绍命名视图的作用,首先,一般情况下,我们在路由配置中,一个路由路径只能对应一个组件,若想对应多个组件,必须得作为子组件存在,然后再一个公用的视图内显示,这是一个路由对应多个组件,这些组件对应一个视图

例如:

{
path:'tv',

name:'tv',

component:Tv,

children:[


{path:'',component:Zhonghe},


{path:'zhonghe',component:Zhonghe},


{path:'guochan',component:Guochan},


{path:'yingmei',component:Yingmei},


{path:'riju',component:Riju},


{path:'hanju',component:Hanju}

]
},

那么,下面来介绍命名视图:有时候想同时 (同级) 展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar (侧导航) 和 main (主内容) 两个视图,这个时候命名视图就派上用场了。你可以在界面中拥有多个单独命名的视图,而不是只有一个单独的出口。如果 router-view 没有设置名字,那么默认为 default。

<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>

一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件。确保正确使用 components配置 (带上 s):

const router = new VueRouter({
 routes: [
  {
   path: '/',
   components: {
    default: Foo,
    a: Bar,
    b: Baz
   }
  }
 ]
})

解释一下:

在这个默认路由下,

第一个非未命名视图显示Foo组件

第二个name名为a的视图显示Bar组件

第二个name名为b的视图显示Baz组件

然后自己有些了个demo

<template>
<div class="hello">


<ul class="nav">



<li><router-link to="/list1">list1</router-link></li>



<li><router-link to="/list2">list2</router-link></li>



<li><router-link to="/list3">list3</router-link></li>


</ul>


<h6>默认视图</h6>


<div class="view">



<router-view></router-view>


</div>


<h6>a视图</h6>


<div class="view">



<router-view name="a"></router-view>


</div>


<h6>b视图</h6>


<div class="view">



<router-view name="b"></router-view>


</div>

</div>
</template>

router配置:

routes: [
{


path: '/',


name: 'HelloWorld',


component: HelloWorld,


children:[



{




path:'',




components:{





default:List1,





a:List2,





b:List3




}



},



{




path:'list1',




components:{





default:List1,





a:List2,





b:List3




}



 },



 {




path:'list2',




components:{





default:List2,





a:List1,





b:List3




}



},



{




path:'list3',




components:{





default:List3,





a:List1,





b:List2




}



}


]

}
]

这样会让也面很灵活,可以研究一下

总结

以上所述是小编给大家介绍的vue 中 命名视图的用法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
Jan 23 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
Javascript中的arguments对象
Jun 20 Javascript
javaScript 连接打印机,打印小票的实例
Dec 29 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
JS数组扁平化(flat)方法总结详解
Jun 24 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
vue移动端使用canvas签名的实现
Jan 15 Javascript
详解vue 命名视图
Aug 14 #Javascript
浅谈JS中this在各个场景下的指向
Aug 14 #Javascript
Vue路由模块化配置的完整步骤
Aug 14 #Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 #Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 #Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 #Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 #Javascript
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php session安全问题分析
2011/06/24 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python烟花效果的代码实例
2020/02/25 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
一份Java笔试题
2012/02/21 面试题
C语言笔试题回忆
2015/04/02 面试题
什么是数组名
2012/05/10 面试题
房地产活动策划方案
2014/05/14 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
个人四风对照检查材料
2014/09/26 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏