需求场景:
解决的办法:
this.$router.go(0)
。这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好;
本次采用 this.$router.replace()
的方法来实现
- 首先创建 Refresh.vue 文件
<template>
<p v-show="false">Refresh</p>
</template>
<script>
export default {
beforeRouteEnter(to, from, next) {
next(vm => {
vm.$router.replace(from.path);
});
}
};
</script>
- 然后在 router.js 添加路由 /refresh 路由地址(可自定义路由地址)
{
path: "/refresh", //刷新页面
name: "refresh",
component: () => import("views/Refresh.vue")
},
- 接下来就是具体是使用了,在需要使用的页面可以用以下方法:
this.$router.replace({
path: "/refresh",
query: {
t: Date.now()
}
});
这里需要注意的是:一定要使用 replace方法进行跳转,这样的话可解决,back()方法陷入死循环,
希望能帮到需要的各位道友