vue-router的模糊匹配和精确匹配

64 篇文章 1 订阅

场景:最近在做的这个项目有一个场景是个人中心页面,有几个嵌套的二级路由,其中有一个订单的子路由下面还嵌套着几个三级路由。这里二级路由是通过点击router-link进行点击跳转,三级路由是通过二级路由中的查看详情等按钮进入的。问题就在这里当跳转到三级路由的时候对应的二级路由的router-llink如何保持激活样式。

router.js文件中的三极路由的path属性中要写入二级路由的path属性

    path: '/order',
    name: 'order',
    component: resolve => require(['./views/personal/order/order'],resolve),
    redirect: '/order/orderHome',
    children: [
        {
            path: '/order/orderHome',
            name: 'orderHome',
            component: resolve => require(['./views/personal/order/orderHome/orderHome'],resolve),
            meta: {title: '我的订单'}
        },
        {
            path: '/order/orderLogistic',
            name: 'orderLogistic',
            component: resolve => require(['./views/personal/order/orderLogistic/orderLogistic'],resolve),
            meta: {title: '物流追踪'}
        },

order是二级路由,orderHome和orderLogistic是三级路由。

<router-link tag="div" :to="{name: 'order'}" active-class="active">我的订单</router-link>

router-link中要注意区分active-class(模糊匹配)和exact-active-class(精确匹配)

精确匹配必须要在url中匹配到router-link中的to属性对应的name,否则router-link不会处于激活状态

模糊匹配只要url中有router-link中的to属性对应的name,不用完全匹配就可以处于激活状态。

下面是三级路由的写法

gotoLogistic () {
    this.$router.push({
        name: 'orderLogistic'
    })
},
gotoCommit () {
    this.$router.push({
        name: 'orderCommit'
    })
}

这里建议大家路由跳转用name跳转,path跳转的代码比较麻烦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值