【问题标题】:Vue Router - How to pass along query params between routesVue Router - 如何在路由之间传递查询参数
【发布时间】:2020-08-11 11:44:16
【问题描述】:

我有以下场景...

当用户访问路由/intended/page 时,他们会被重定向到另一个路由,例如/foo/page?next=/intended/page。我添加了一个查询参数next=/intended/page 以保留原始路线。从重定向路线,用户经过一系列其他页面/组件,比如/bar/page,然后是/baz/page,最后我想将它们带到原始路线。问题是如何在 bar 和 baz 路线旁边通过。我想我可以将查询参数存储在 Vuex 中,但也许有更简单的方法使用 Vue 路由器。我尝试在全局警卫中这样做

router.beforeEach((to, from, next) => {
    if (from.query.next) next({path: to.path, query: {next: from.query.next}});
    else next();
});

但我最终陷入了无限循环。有什么想法吗?

【问题讨论】:

    标签: vue.js vue-router


    【解决方案1】:

    如果你想在运行时编辑查询字符串参数,在每个路由之前,你只需要编辑你的 to.query 对象:

    示例:

    to.query.site = 'mysite';
    

    然后:

    next({path: to.path, query: to.query})
    

    如果您的网址是:/#/?name=Gianni 它将重定向到:/#/?name=Gianni&site=mysite

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2020-07-16
      • 1970-01-01
      • 2014-06-30
      • 2020-06-13
      相关资源
      最近更新 更多