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 相关文章推荐
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
理解javascript回调函数
Dec 28 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
JavaScript生成的动态下雨背景效果实现方法
Feb 25 Javascript
十个免费的web前端开发工具详细整理
Sep 18 Javascript
详解使用路由延迟加载 Angular 模块
Oct 12 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
vue使用v-for实现hover点击效果
Sep 29 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
Node.js API详解之 console模块用法详解
May 12 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
配置php网页显示各种语法错误
2013/09/23 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
php操作access数据库的方法详解
2017/02/22 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
学习Node.js模块机制
2016/10/17 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python 字符串常用函数详解
2019/09/11 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
总经理职责范文
2013/11/08 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
爱国主义演讲稿
2014/05/07 职场文书
常务副总经理任命书
2014/06/05 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
python非标准时间的转换
2021/07/25 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang