【发布时间】:2018-05-08 17:34:06
【问题描述】:
对于我的应用程序中的每条路由,如果有某个查询参数,我们称之为userId,我希望下一个路由也包含该查询参数。
一种解决方案是修改每个router-link 和router.push 以添加此查询参数,但我想使用router.beforeEach 来解决此问题。
我试过了,但它会启动一个无限循环:
router.beforeEach((to, from, next) => {
if (from.query.userId) {
next({
path: to.path,
query: Object.assign({}, to.query, from.query.userId),
})
}
next()
})
vue-router 中是否有任何方法可以让我保留查询参数(如果它存在于上一个路由中)?
【问题讨论】:
-
听起来你最好使用动态路由匹配:router.vuejs.org/en/essentials/dynamic-matching.html
-
我不知道,“userid”确实不是我们应用的用户,它仅用于跟踪目的,与页面本身无关。
-
你为什么使用 : query: Object.assign({}, to.query, from.query.userId),而不仅仅是 query: from.query ?
标签: javascript vue.js vue-router