1、原始方法
location.reload
2、vue自带的路由跳转
this.$router.go(0)
第一种和第二种都是强制刷新页面,会出现短暂的闪烁,用户体验不好
3、在项目的app.vue
<template>
<div id="main">
<router-view v-if="isRouterAlive"></router-view>
</div>
</template>
<script>
export default {
provide() {
return {
reload: this.reload
}
},
data() {
return {
isRouterAlive: true
}
},
methods: {
reload() {
this.isRouterAlive = false
this.$nextTick(function() {
this.isRouterAlive = true
})
}
}
}
</script>
在需要刷新页面的组件里
export default {
inject: ['reload'],
data() {
return {
}
}
}
在需要刷新的代码块里使用
this.reload()