vue-router:如何检查当前路由是路由还是其子路由?

soat7uwm  于 2023-08-07  发布在  Vue.js
关注(0)|答案(2)|浏览(272)

我 Package 路由器链接添加一些功能。
我需要检查当前路由是路由还是路由的子路由。

  • 就像下面这样 *

我知道它不能工作,因为:active需要一个布尔值,但是JavaScript.match返回一个数组;:是为了解释我的目标

:active="$route.name.match('customer_users*')"

字符串
在我的router.js中,我定义了/customer/{customer_id}/users命名为customer_users/customer/{customer_id}/users/{user_id}命名为customer_users_edit
因此,我希望能够在这两个路由的 Package 器中设置“:active”。

lpwwtiir

lpwwtiir1#

使用$route.matched属性查看当前路由是您的customer_users还是它的任何子路由。
例如,使用Array.prototype.some()

:active="$route.matched.some(({ name }) => name === 'customer_users')"

字符串
参见https://v3.router.vuejs.org/api/#route-object-properties

$route.matched

型号:Array<RouteRecord>
包含当前路由所有嵌套路径段的路由记录的Array。

gjmwrych

gjmwrych2#

我喜欢以下匹配多个路由的方法:

import { useRoute } from 'vue-router'

if(route.matched.some(({ path }) => path.startsWith('/redirect'))){
    //handle redirect
}

字符串
您正在检查当前路径是否

相关问题