vue-router:如何检查当前路由是路由还是它的子路由之一?

rea*_*ebo 12 vue.js vue-router

我正在包装 router-link 以添加一些功能。

我需要检查当前路线是路线还是路线的子路线。

类似于以下内容

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

:active="$route.name.match('customer_users*')"
Run Code Online (Sandbox Code Playgroud)

在我router.js我definied是/customer/{customer_id}/users被命名为customer_users/customer/{customer_id}/users/{user_id}被命名为customer_users_edit

所以我希望能够在我的包装器中为这两条路线设置“:active”。

Phi*_*hil 23

使用该$route.matched属性查看当前路线是您的路线customer_users还是它的任何子路线。

例如,使用 Array.prototype.some()

:active="$route.matched.some(({ name }) => name === 'customer_users')"
Run Code Online (Sandbox Code Playgroud)

https://router.vuejs.org/api/#route-object-properties

$route.matched

类型: Array<RouteRecord>

包含当前路线的所有嵌套路径段的路线记录的数组。