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 版权协议,转载请附上原文出处链接和本声明。