1.location.reload()
2.vue路由跳转
//router.go(n):参数是一个整数,意思是在 history 记录中向前或者后退多少步,
//类似 window.history.go(n)
this.$router.go(0)
注:前两种方式都是强制刷新页面,会出现短暂的闪烁,用户体验不好,推荐第三种方式
3.使用provide / inject ——推荐
3.1 原理
通过控制router-view 的显示与隐藏,来重渲染路由区域,达到页面刷新的效果,show -> flase -> show。
3.2 具体代码
(1)在App.vue页面中provide刷新页面的reload方法
<template>
<div id="app">
<router-view v-if="isRouterView"></router-view>
</div>
</template>
<script>
export default {
name: 'App',
provide () {
return {
reload: this.reload
}
},
data() {
return{
isRouterView: true
}
},
methods: {
reload () {
this.isRouterView = false;
this.$nextTick(() => {
this.isRouterView= true;
})
}
},
}
</script>
(2)在需要刷新页面的组件中注入reload:
export default {
inject:['reload'], //注入App里的reload方法
}
(3)在需要刷新页面的代码块中使用:
this.reload();
原文引用Vue刷新页面的三种方式