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 相关文章推荐
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
Firefox和IE兼容性问题及解决方法总结
Oct 08 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
May 30 Javascript
vue组件实例解析
Jan 10 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
Bootstrap4如何定制自己的颜色和风格
Feb 26 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
JavaScript oncopy事件用法实例解析
May 13 Javascript
JavaScript 对象创建的3种方法
Nov 17 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基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
在Linux下调试Python代码的各种方法
2015/04/17 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python3 中文文件读写方法
2018/01/23 Python
python实现简单遗传算法
2018/03/19 Python
python定时关机小脚本
2018/06/20 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
医务人员自我评价
2014/01/26 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
个人年终总结开头
2015/03/06 职场文书
详解Python类和对象内容
2021/06/22 Python
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python