vue刷新当前页面

方法一:- this.$router.go(0)
        - window.location.href
        - window.location.reload()

强制刷新当前页面,浏览器进行重新加载,出现页面闪烁和空白,用户体验极差。

方法二:借助vue的API:provide/inject
在顶层路由页面定义并向子孙后代注入依赖:

<template>
  <div> 
    <router-view v-if="showFlag"></router-view> 
  </div>
</template>
<script> 
export default {
  name: 'home',
  data() {
    return {
      showFlag: true, // 控制router-view的显示或隐藏
    }
  },
  methods: { 
    reload () {
      this.isShow = false; // 先隐藏
      this.$nextTick(() => {  // $nextTick() 将回调延迟到下次 DOM 更新循环之后执行
        this.showFlag= true;
      })
    }
  },
  provide () { // 提供可注入子组件属性
    return {
      reload: this.reload
    }
  },
}

</script>

在需要刷新的组件或页面调用该方法:

export default {
  // 接收注入的数据
  inject: [
    'reload'
  ],
  methods: {
    showRouter () {
      // 调用reload方法,刷新整个页面
      this.reload()
    }
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容