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的版本实现执行不同的代码
May 11 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
Dec 11 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
js时间查询插件使用详解
Apr 07 Javascript
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
vue如何将v-for中的表格导出来
May 07 Javascript
vue中组件的过渡动画及实现代码
Nov 21 Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 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实现无限极分类图文教程
2014/11/25 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python代码编写计算器小程序
2020/03/30 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
骨干教师培训制度
2014/01/13 职场文书
森林病虫害防治方案
2014/06/02 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
文员岗位职责
2015/02/04 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers