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 相关文章推荐
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 Javascript
jquery网页元素拖拽插件效果及实现
Aug 05 Javascript
js实现简单的可切换选项卡效果
Apr 10 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
通过npm引用的vue组件使用详解
Mar 02 Javascript
web前端vue之CSS过渡效果示例
Jan 10 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
JavaScript实现更换背景图片
Oct 18 Javascript
微信小程序实现一个简单swiper代码实例
Dec 30 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
Dec 07 Vue.js
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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP页面中文乱码分析
2013/10/29 PHP
php获取字段名示例分享
2014/03/03 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
vue如何使用rem适配
2021/02/06 Vue.js
Python正则表达式匹配HTML页面编码
2015/04/08 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
Python虚拟环境项目实例
2017/11/20 Python
python的中异常处理机制
2018/08/30 Python
python中update的基本使用方法详解
2019/07/17 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python mysql中in参数化说明
2020/06/05 Python
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
毕业生求职的求职信
2013/12/05 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
消防应急演练方案
2014/02/12 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
婚庆司仪主持词
2014/03/15 职场文书
任命书格式
2014/06/05 职场文书
大学生安全责任书
2014/07/25 职场文书
初中同学会活动方案
2014/08/22 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
Python序列化模块JSON与Pickle
2022/06/05 Python