vue-cli 默认路由再子路由选中下的选中状态问题及解决代码


Posted in Javascript onSeptember 06, 2018

vue-cli是Vue.js官方脚手架命令行工具,我们可以用它快速搭建Vue.js项目,vue-cli最主要的功能就是初始化项目,既可以使用官方模板,也可以使用自定义模板生成项目,而且从2.8.0版本开始,vue-cli新增了build命令,能让你零配置启动一个Vue.js应用。

因项目需求,需要在默认路由下面的两个子路由进行切换,当开始以为不就是路由切换?so easy!就看一下遇到的问题吧!

{path: '/',component: resolve => require(['@/components/LiveList'],resolve),
  children:[
  {
  path:'',
  name:'livelist',
  meta:{title:'',index:0},
  component: resolve => require(['@/components/compts/livelistcom'],resolve)
  },{
  path:'livenew',
  name:'livenew',
  meta:{title:'',index:1},
  component: resolve => require(['@/components/compts/livelistnew'],resolve)
  }]
 },
{
 path:'/user',
 name:'user',
 meta:{title:'用户',index:4},
 component: resolve => require(['@/components/user'],resolve)
},

这路由一看没问题吧!

<router-link to="/"><p>首页</p></router-link>//这是底部的切换路由
//下面两个便是首页下面的两个子路由的跳转了
<li><router-link to="/">热门</router-link></li>
<li><router-link to="/livenew">最新</router-link></li>

看到上面的代码是不是没有发现错误?其实也的确可以运行!而且两个子路由切换关于首页的状态也是没有问题的!

但是当我切换user路由的时候发现,首页路由的状态依旧是选中状态 ,这个让我很纳闷,按理说user路由跟首页的路由是同级,不出出现这样的问题。既然出现了,为了工作,只能迎难而上,去解决这个问题。

在经过我仔细的查找文档,终于想到了一种解决方案:在官方文档里面有一个 redirect (重定向) router.vuejs.org/zh/guide/es… 点击链接可以查看官方文档

既然可以重定向那我就试一下这种来解决(毕竟上面的代码和逻辑事再想不出是什么地方出的错误,还望大神指点一二!!!)

废话不多说,直接先解决后的代码:

{path:'',redirect: '/index'},
 {path: '/index',component: resolve => require(['@/components/LiveList'],resolve),
  children:[
  {path:'',redirect:'livelist'},
  {
  path:'livelist',
  name:'livelist',
  meta:{title:'',index:0},
  component: resolve => require(['@/components/compts/livelistcom'],resolve)
  },{
  path:'livenew',
  name:'livenew',
  meta:{title:'',index:1},
  component: resolve => require(['@/components/compts/livelistnew'],resolve)
  }]
 },
 {
  path:'/user',
  name:'user',
  meta:{title:'用户',index:4},
  component: resolve => require(['@/components/user'],resolve)
 }

而关于路由的跳转也有一些小变化:

<router-link to="/index"><p>首页</p></router-link>//这里依旧是底部导航
//这里便是首页的两个子路由的跳转按钮了
<li><router-link to="/index/livelist">热门</router-link></li>
<li><router-link to="/index/livenew">最新</router-link></li>

构思 :用重定向,规定默认路由跳转到上面  /index 下面默认的子路由,再由默认的子路由去定向到子路由的  livelist 。(这是在解决问题的时候发现,非默认路由下,子路由切换不会造成默认路由选中不取消的问题,而默认路由一直会存在一个 router-link-active的类名,我的选中样式也是基于它的 )

关于选中时自定义自己的样式可以操作.router-link-active 这个类,而默认路由一直存在这个类,如果没有子路由,或者子路由选中不需要显示父路由也为选中状态的情况下,你可以操作.router-link-exact-active这个类来写自己的选中样式。

总结

以上所述是小编给大家介绍的vue-cli 默认路由再子路由选中下的选中状态问题及解决代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript定时变换图片实例代码
Mar 17 Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
Apr 29 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
Vue中的Vux配置指南
Dec 08 Javascript
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
vue实现简单的MVVM框架
Aug 05 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 #jQuery
Vue下拉框回显并默认选中随机问题
Sep 06 #Javascript
vue兄弟组件传递数据的实例
Sep 06 #Javascript
webpack4简单入门实例
Sep 06 #Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 #jQuery
对vue中v-on绑定自定事件的实例讲解
Sep 06 #Javascript
微信小程序开发之自定义tabBar的实现
Sep 06 #Javascript
You might like
javascript新手语法小结
2008/06/15 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
理解Python中函数的参数
2015/04/27 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python使用建议与技巧分享(二)
2020/08/17 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
红头文件任命书范本
2014/06/05 职场文书
欢迎标语大全
2014/06/21 职场文书
工人先锋号申报材料
2014/12/29 职场文书
民主生活会主持词
2015/07/01 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python