vue 嵌套路由,router-link-active的问题

最近开发的过程中,遇到一个嵌套路由的问题,需求是这这样的,

首页三个路由   a    b    c  

路由写法是

export default new Router({
routes: [
// {
// path: '/',
// component: ''
// },
// {
// path: '/history-grade',
// component: ''
// },
{
path: '/source-setting',
component: setting,
children: [
{
path:'',
component: baseSource
},
{
path: 'baseSource',
component: baseSource
},
{
path: 'contact',
component: contact
},
{
path: 'push',
component: push
},
{
path: 'account',
component: account
}
]
}
]
})

然后c路由下面 又分为其他的不同功能,由此生出1,2,3 路由,因此是c路由下嵌套 3个路由,在点击三个主路由的时候,会有一个active的样式,如下图

一开始我是用vue里面router-link-exact-active来做的,但是因为有一个嵌套路由 

在子路由点击的时候,要保证此时当前的激活路由还处于active状态,显然如果用router-link-exact-active 来做的话 ,就不能实现了。即在你点击子路由的时候,主路由的active样式就消失了,

多次尝试之后

<router-link to="/" exact>比赛数据</router-link>
<router-link to="/history-grade">历史成就</router-link>
<router-link to="/source-setting">资料设置</router-link>

router-link-active 表示当前路由被激活的时候,添加的属性

在第一个'/'添加exact之后,默认是false,发现,在点击子路由的时候,被激活的’资料设置‘这个路由存在router-link-active属性,所以把router-link-exact-active改为router-link-active 解决了这个样式的问题。

加上exact 属性 表示 <!-- 这个链接只会在地址为 / 的时候被激活 -->,不加的时候,每个路由都会激活当前这个路由 ,就是每个路由激活的时候 都会使得
<router-link to="/" exact>比赛数据</router-link>  多一个router-link-active 属性! 
 

转载于:https://www.cnblogs.com/lisiyang/p/7867544.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值