如下:
因为之后要从一个外链进入这个项目首页,所以在第一次进入时拿到location上带的参数experimentId,其余的都从前一个对象的query拿到参数expeirmnetId
代码如下:
router.beforeEach((to,from,next)=>{
if(to.path=="/home"&&from.path=="/"){
to.query.experimentId=window.location.href.match(/experimentId=(.*)/)[1];
}
else{
to.query.experimentId=from.query.experimentId
}
console.log(to)
next();
})
第一次进入的地址栏类似:
控制台打印出来的to
对象如下:
{name: undefined, meta: {…}, path: "/home", hash: "", query: {…}, …}
fullPath: "/home"
hash: ""
matched: (2) [{…}, {…}]
meta: {}
name: undefined
params: {}
path: "/home"
query: {experimentId: "c897431296784b5a8b53d2aee08e77a3"}
__proto__: Object
切换其他路由时同样能打印出带参数的to对象,但地址栏却不显示参数了。
想知道如何能在地址栏也加上那个参数
可以换个思路,单页面的话就是hash里面玩玩。直接在hash前面的search动下手脚,只要全局是在用vue的$router对象跳转,就不会影响search了。而且hash里面的?也可以正常用
获取地址栏中指定参数方法如下