vue项目使用beforeEach钩子给url添加公共参数

使用场景:推广页面多渠道入口,数据统计需要;

代码:

router.beforeEach((to, from, next) => {
  if (!to.query.channel) {
    next({
      ...to,
      query: {
        ...to.query,
        'channel': '1'
      }
    })
  } else {
    next()
  }
})

知道的点:

        1、next接收的参数:在vueRouter文档中初步看了一下,没有具体说明。但我们常用的next({path: '/xxx'}) 不难推测,next接收的是to对象。

        2、to.query是只读属性,所以无法使用 to.query.xxx = 'xx'。

不知道的点:

        下面这种写法会进入死循环,为啥?后面再看看

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

希望有点用


版权声明:本文为aydongzhiping原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>