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在光标位置插入内容的实现代码
Jun 18 Javascript
JavaScript 获取当前时间戳的代码
Aug 05 Javascript
jQuery 名称冲突的解决方法
Apr 08 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
JavaScript中的操作符类型转换示例总结
May 30 Javascript
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
详解react-redux插件入门
Apr 19 Javascript
微信小程序中为什么使用var that=this
Aug 27 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
Apr 14 Javascript
vue脚手架项目创建步骤详解
Mar 02 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测试程序运行时间的类
2012/02/05 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
jquery禁用右键示例
2014/04/28 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
实例讲解v-if和v-show的区别
2019/01/31 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
Python 查找字符在字符串中的位置实例
2018/05/02 Python
python将回车作为输入内容的实例
2018/06/23 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
致跳高运动员加油稿
2014/02/12 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2014年体育部工作总结
2014/11/13 职场文书
小学生思想品德评语
2014/12/31 职场文书
生产车间管理制度
2015/08/04 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS