Javascript Vue路由器:全局向路由添加查询值

Javascript Vue路由器:全局向路由添加查询值,javascript,vue.js,vue-router,Javascript,Vue.js,Vue Router,使用posted by中的代码似乎可以实现您想要的: 这样做的目的是将实例属性添加到查询对象中,这就是您在尝试中所做的,但是您遗漏了它必须使用修改后的对象调用下一个的部分,否则它将继续原来的路线。这似乎没有效果。更新:When Iconsole.log(to)就在next()之前,我可以看到实例值已正确分配。由于某些原因,它不会显示在浏览器URL中。为什么需要在每个路由中显示?instance=123?我觉得用beforeach来更改每个路由中的查询值是很奇怪的,这很不寻常。我需要将每个浏览器选

使用posted by中的代码似乎可以实现您想要的:


这样做的目的是将
实例
属性添加到查询对象中,这就是您在尝试中所做的,但是您遗漏了它必须使用修改后的对象调用
下一个
的部分,否则它将继续原来的路线。

这似乎没有效果。更新:When I
console.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();
  }
});