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中利用数组实现的循环队列代码
Jan 24 Javascript
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 Javascript
jquery实现在光标位置插入内容的方法
Feb 05 Javascript
javascript截取字符串小结
Apr 28 Javascript
再谈JavaScript线程
Jul 10 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 Javascript
使用Vue-Router 2实现路由功能实例详解
Nov 14 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
Node.js搭建WEB服务器的示例代码
Aug 15 Javascript
React实现全选功能
Aug 25 Javascript
react中props 的使用及进行限制的方法
Apr 28 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
程序员编程十条戒律
2009/07/09 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
ant design实现圈选功能
2019/12/17 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python使用mysql数据库示例代码
2017/05/21 Python
python模拟事件触发机制详解
2018/01/19 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
用Python解数独的方法示例
2019/10/24 Python
python psutil监控进程实例
2019/12/17 Python
python 操作excel表格的方法
2020/12/05 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
教师实习自我鉴定
2013/12/11 职场文书
产品质量承诺书范文
2014/03/27 职场文书
3的组成教学反思
2014/04/30 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
监守自盗观后感
2015/06/10 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
详解Django的MVT设计模式
2021/04/29 Python