尝试了几种刷新页面的方法,
比如 : 1、浏览器直接刷新(会出现短暂的白页面现象)
2、设置一个空白页面,需要刷新的时候跳转到空页面再从空页面跳回来 (些许麻烦)
3、使用 provide /inject (目前觉得最实用,主讲此方法)

使用provide / inject

1、在App.vue 中设置

App.vue

r<template>
  <div id="app">
    <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(()=> {
        this.isRouterAlive = true;
      })
    },
  }
}
</script>

通过声明 reload 方法,控制 router-view 的显示或隐藏,从此控制页面的加载

2、在需要刷新的页面设置
<template>
  <div>
  <button @click="clickBtn"></button>
  </div>
</template>
<script>
export default {
	inject:['reload'], // 注入依赖
  	data(){
    	return {};
  },
  	created() {},
  	mounted() {},
  	methods: {
  		clickBtn(){
  		this.reload()
  }},
};
</script>
Logo

前往低代码交流专区

更多推荐