刷新当前页面的几种方法

from:https://segmentfault.com/a/1190000017007631

1.场景

在我们日程工作中,经常会碰到需要刷新当前页面的情况,比如数据的增删改等。

2.解决方案(不推荐)

  • 用vue-router重新路由到当前页面,页面是不进行刷新的
  • this.$router.go(0)。这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好
  • location.reload()。这种也是一样,画面一闪,体验不是很好

3.解决方案(推荐)

provide /inject 组合

原理:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效

App.vue,声明reload方法,控制router-view的显示或隐藏。从而控制页面的再次加载。

<template>
  <div id="app">
    <router-view v-if="isRouterAlive" />
  </div>
</template>

<script>
export default {
  name: "App",
  provide() {
    return {
      reload: this.reload
    };
  },
  data() {
    return {
      isRouterAlive: true
    };
  },
  methods: {
    reload() {
      this.isRouterAlive = false;
      this.$nextTick(function() {
        this.isRouterAlive = true;
      });
    }
  }
};
</script>

在需要用到刷新的页面。在页面注入App.vue组件提供(provide)reload依赖,在逻辑完成之后(删除或添加...),直接this.reload()调用,即可刷新当前页面。

注入reload方法
image.png
直接调用
image.png

1、通过控制router-view的显示和隐藏来控制嵌套的组件的刷新与否,而不用刷新整个页面。
2、nextTick(cb)在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 13,294评论 1 52
  • 1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。 2.遇到的问题 1. 用v...
    彩云_789d阅读 14,971评论 0 3
  • Vue 3.0 性能提升主要是通过哪几方面体现的? vue2在初始化的时候,对data中的每个属性使用define...
    Smallbore阅读 4,850评论 0 8
  • 基于Vue的一些资料 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 element★...
    尝了又尝阅读 4,890评论 0 1
  • 很多父母认为,家庭教育就是开发孩子的智力,让孩子从两三岁开始背唐诗,四五岁学英语,上学后要请家教、上辅导班,成绩一...
    蓝色水晶1130阅读 3,821评论 0 0

友情链接更多精彩内容