Javascript Vue路由器:全局向路由添加查询值
使用posted by中的代码似乎可以实现您想要的:Javascript Vue路由器:全局向路由添加查询值,javascript,vue.js,vue-router,Javascript,Vue.js,Vue Router,使用posted by中的代码似乎可以实现您想要的: 这样做的目的是将实例属性添加到查询对象中,这就是您在尝试中所做的,但是您遗漏了它必须使用修改后的对象调用下一个的部分,否则它将继续原来的路线。这似乎没有效果。更新:When Iconsole.log(to)就在next()之前,我可以看到实例值已正确分配。由于某些原因,它不会显示在浏览器URL中。为什么需要在每个路由中显示?instance=123?我觉得用beforeach来更改每个路由中的查询值是很奇怪的,这很不寻常。我需要将每个浏览器选
这样做的目的是将
实例
属性添加到查询对象中,这就是您在尝试中所做的,但是您遗漏了它必须使用修改后的对象调用下一个
的部分,否则它将继续原来的路线。这似乎没有效果。更新:When Iconsole.log(to)
就在next()
之前,我可以看到实例
值已正确分配。由于某些原因,它不会显示在浏览器URL中。为什么需要在每个路由中显示?instance=123
?我觉得用beforeach来更改每个路由中的查询值是很奇怪的,这很不寻常。我需要将每个浏览器选项卡(此应用程序)绑定到特定且唯一的localStorage实例。效果类似于在不同的选项卡中使用不同的Gmail帐户。(URL中的实例
的原因是在刷新时正确保存存储。)@Donnie为什么不使用会话存储?会话存储对于每个浏览器选项卡都是唯一的。那应该是预期的用途,就像这样。它是有效的。作为答复离开,我会接受的。
router.beforeEach((to, from, next) => {
to.query.instance = '123';
next();
});
router.beforeEach((to, from, next) => {
if (!to.query.instance) {
to.query.instance= '123';
next({ path: to.path, query: to.query });
} else {
next();
}
});