router:点击子路由时,父级路由的active属性消失

原因:把父级路由和子级路由的路径默认path:'/',并且router-link都添加了exact:

routes:[

        {

            name:'FindMusic',

            path:'/',

            component:FindMusic,

            meta:{title:'发现音乐'},

            children:[

                {

                    path:'',

                    component:PersonRecommend,

                    meta:{title:'个性推荐'},

                },

            ]

        }

]

router-link标签中添加了exact,导致点击子级路由时父级路由即默认路由的exact属性被激活,从而引起了 点击二级路由的时候,一级路由的active消失。

<li><router-link class="navItem"  active-class="active"  to="/"  exact >发现音乐</router-link></li>

<li ><router-link class="navSeText" active-class="active"  to="/findMusic/personRecommend" >个性推荐</router-link></li>

解决办法:

1.使用重定向:在router的js文件中改成如下:

const router = new VueRouter({

    linkActiveClass:'active', //之后添加的,为了可以重新设置active的样式,否则不能设置

    routes:[

        {path:'/',redirect:'/findMusic/personRecommend'}, //之后添加的,使用重定向

        {

            name:'FindMusic',

            path:'/findMusic',   //可以修改成原来的样子

            component:FindMusic,

            meta:{title:'发现音乐'},

            redirect:'/findMusic/personRecommend',

            children:[

                {

                    path:'personRecommend',  //修改成原来的样子

                    component:PersonRecommend,

                    meta:{title:'个性推荐'},

                },

2.接着修改router-link的为:

<router-link class="navItem"  active-class="active" to="/findMusic"  >发现音乐</router-link>

<router-link class="navSeText" active-class="active" to="/findMusic/personRecommend" >个性推荐</router-link>

这样就可以了,完成效果:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值