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 经典动画菜单效果代码
Jan 26 Javascript
编写Js代码要注意的几条规则
Sep 10 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
提升PHP安全:8个必须修改的PHP默认配置
Nov 17 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
Sep 23 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 Javascript
vue基础之data存储数据及v-for循环用法示例
Mar 08 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
JS中的模糊查询功能
Dec 08 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 使用array函数实现分页
2015/02/13 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
js读取cookie方法总结
2014/10/31 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
公司业务员岗位职责
2014/03/18 职场文书
《花木兰》教学反思
2014/04/09 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
2015年党总支工作总结
2015/05/25 职场文书
母亲去世追悼词
2015/06/23 职场文书