【发布时间】:2019-05-20 20:39:57
【问题描述】:
我如何手动(以编程方式)比较两条路线并确定它们是否相同? (如果存在router-link-active 或router-link-exact-active)
一般我需要这种功能
/*
@params route1, route2 : Route
*/
function isActivated(route1, route2) {
/* comparing them somehow */
return {
exactActive,
active
};
}
用例:
我有一个NestedLink.vue 组件,它是router-link 的包装器。
它需要to 和router-link 一样的属性(并将其传递给子路由器链接)。如果当前路由处于活动状态,嵌套链接将出现在附近。
我的方法:
function isActivated(route1, route2) {
if (
route1.matched.some(record =>
record.regex.test(route2.fullPath)
)
) {
return { exactActive: true };
}
return { exactActive: false };
}
它可以判断路线何时是exact-active,但不是not-exact-active。
【问题讨论】:
标签: vue.js vue-router