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 Global对象
Aug 13 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
使用webpack编译es6代码的方法步骤
Apr 28 Javascript
webpack是如何实现模块化加载的方法
Nov 06 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 Javascript
jQuery实现本地存储
Dec 22 jQuery
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
重置版战役片段
2020/04/09 魔兽争霸
高亮度显示php源代码
2006/10/09 PHP
如何把PHP转成EXE文件
2006/10/09 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
JS event使用方法详解
2008/04/28 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
了解重排与重绘
2019/05/29 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
Python if语句知识点用法总结
2018/06/10 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
Python 多进程、多线程效率对比
2020/11/19 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
驾驶员岗位职责
2014/01/29 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
教师岗位职责范本
2015/04/02 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Python 视频画质增强
2022/04/28 Python
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python