同问:vue-router怎么获取历史记录上一步的url呢?
之前碰到过这个问题,网上找了好久,说出于安全问题浏览器不提供上一个历史记录的接口的。找到的下面的这个代码,作者说是可以用,据说是获取上一个页面的URL的,但是我看不懂,希望有大神能指导一下。
export default {
mixins: [],
vuex: {
actions: {fetchCertificates},
},
data() {
return {}
},
route: {
data() {
this.$root.showLoading();
return this.fetchCertificates().then((res) => {
this.$root.dismissLoading();
if (res.error) return this.$root.toastError(res.error);
if(res.data.certificates.length >0){
return res.data;
}else{
console.log(this.$route ,"----当前页面的url信息----");
}
});
},
canActivate (transition) {
console.log(transition,"======上一个页面的url信息=======");
transition.next();
}
},
}
获取vue-router的上一个页面是否存在或者是否是自己需要返回的地址,可以使用vue-router的的声明周期函数,有三种模式:
第一种、使用全局函数beforeEach,直接来获取form.path(即为对应的上一次地址的路由path内容);
beforeEach(to, from, next) {
path = from.path //path为定义的变量,不是vue的data定义的变量,当前生命周期data还未初始化
next()
}
第二种、使用组内共享函数beforeEnter,直接来获取form.path(即为对应的上一次地址的路由path内容);
beforeEnter(to, from, next) {
path = from.path //path为定义的变量,不是vue的data定义的变量,当前生命周期data还未初始化
next()
}
第三种、使用组件内函数,beforeRouteEnter,,直接来获取form.path(即为对应的上一次地址的路由path内容);
beforeRouteEnter(to, from, next) {
path = from.path //path为定义的变量,不是vue的data定义的变量,当前生命周期data还未初始化
next()
}
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
路由信息对象
如果一个页面是一个组件,在组件里:在导航完成前获取数据