时间:2021-05-26
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 默认路由再子路由选中下的选中状态问题及解决代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
项目下载地址vue-cli多页面多路由项目示例:vue+webpack+vue-router+vuex+mock+axiosUsageThisisaprojec
vue-cli是由vue官方发布的快速构建vue单页面的脚手架。使用vue-cli构建的项目,在默认情况下,执行npmrunbuild会将所有的js代码打包为一
vue-cli开发过程中路由#不好看,去掉可使用history模式,开发模式路径访问都没问题,部署到服务器之后访问路径时报404,这种情况需要配置服务器默认访问
1、首先需要在vue-cli项目中配置bootstrap,jquery2、然后新建vue文件,如index.vue,index.vue内容如下:3、配置路由即可
本文介绍了新手vue构建单页面应用实例代码,分享给大家,具体如下步骤:1.使用vue-cli创建项目2.使用vue-router实现单页路由3.用vuex管理我