原文链接:https://www.cnblogs.com/leng12/p/xiaoleng.html

一、this.$router.go(0)
相当于F5刷新,这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好;

二、location.reload()
这种也是一样,画面一闪,体验不是很好,相当于页面刷新

推荐解决方法:
三、用provide / inject 组合

原理:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效
在App.vue,声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载。

App.vue
在App.vue页面声明

<template><div id="app"><router-view v-if="isRouterAlive"></router-view></div>
</template><script>
export default {name: 'App',provide () {return {reload: this.reload}},data () {return {isRouterAlive: true}},methods: {reload () {this.isRouterAlive = falsethis.$nextTick(function () {this.isRouterAlive = true})}}
}
</script>

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

页面中引用

export default {inject:['reload'],methods:{update(){// 在需要用到的事件中调用this.reload();函数即可this.reload()    }      } }

原文链接:https://www.cnblogs.com/leng12/p/xiaoleng.html

单独组件刷新

开发过程中会遇到一个页面多个组件,特定条件下,我只想刷新单个组件,不要整个页面重载怎么办。
使用v-if指令:如果是刷新某个子组件,则可以通过v-if指令实现。我们知道,当v-if的值发生变化时,组件都会被重新渲染一遍。因此,利用v-if指令的特性,可以达到强制刷新组件的目的。

<Icon type="md-refresh" @click="refreshPage" />
<OrderInfo v-if="isShow"></OrderInfo>
export default {data(){isShow:true},method:{refreshPage(){  // 单独刷新页面console.log("刷新”");this.isShow = false;this.$nextTick(() => {this.isShow = true;})}}
}

总结:页面的刷新分为三步
1、app.vue页面中注入App.vue组件提供(provide)的 reload 依赖
2、页面引用 inject:['reload']
3、将需要刷新的部分绑定 v-if

组件刷新使用vue特性v-if绑定值发生改变页面刷新
1、给组件绑定v-if
2、更改v-if绑定值,使用$nextTick再修改

$nextTick讲解:https://vue3js.cn/interview/vue/nexttick.html#%E4%B8%80%E3%80%81nexttick%E6%98%AF%E4%BB%80%E4%B9%88

vue使用provide / inject 组合刷新页面+单独组件刷新相关推荐

  1. 最实用的vue刷新当前页面,provide / inject 组合 方式实现vue页面刷新

    这是一种最实用的vue刷新当前页面,其他方式一般会出现一个瞬间的空白页面,体验不好,相当于按ctrl+F5 强制刷新那种 方式:provide / inject 组合 方式实现vue页面刷新 1.修改 ...

  2. vue 中provide的用法_聊聊Vue中provide/inject的应用详解

    众所周知,在组件式开发中,最大的痛点就在于组件之间的通信.在 Vue 中,Vue 提供了各种各样的组件通信方式,从基础的 props/$emit 到用于兄弟组件通信的 EventBus,再到用于全局数 ...

  3. 聊聊 Vue 中 provide/inject 的应用

    众所周知,在组件式开发中,最大的痛点就在于组件之间的通信.在 Vue 中,Vue 提供了各种各样的组件通信方式,从基础的 props/$emit 到用于兄弟组件通信的 EventBus,再到用于全局数 ...

  4. 用函数刷新页面内容比刷新页面要好

    用函数刷新页面内容比刷新页面要好 app中有时需要更新页面的内容,这个时候可以选择刷新该页面 但如果使用函数来更改页面的内容,效果会更好: 例如 转载于:https://www.cnblogs.com ...

  5. 【vue】— provide/inject的原理

    系列文章目录 [VUE]- diff算法原理 [VUE]- watch侦听器原理 文章目录 系列文章目录 一.provide/inject的作用及使用方式 二.顺道复习一下组件间的通讯方式吧 三.源码 ...

  6. php a 标签后 刷新,a链接刷新页面与js刷新页面用法

    刷新页面通常是使用a链接与js刷新,至于两者在使用中的区别,在接下来的文章中有详细的介绍,感兴趣的朋友可以了解下 1.a链接的使用操作: 复制代码 代码如下:返回上一页 刷新当前页 #top的效果在我 ...

  7. a链接刷新页面与js刷新页面总结

    1.a链接的使用操作: <a href="javascript:history.go(-1);">返回上一页</a> <a href="#t ...

  8. jq分页 不刷新页面_jquery无刷新分页

    希望有机会能和大家一起交流学习,220897863程序员之家群欢迎大家加入 在现在的项目中使用jquery实现无刷新的分页,数据库采用存储过程进行分页,具体代码就不说了,主要看前段的实现 PageCh ...

  9. jq分页 不刷新页面_jQuery无刷新分页完整实例代码

    本文实例讲述了jQuery无刷新分页实现方法.分享给大家供大家参考,具体如下: 这款jQuery分页示例,是分页经典形式,兼容性也做的好,网页上的分页代码,分享给大家. 运行效果截图如下: 在线演示地 ...

最新文章

  1. 2021年大数据Spark(四十五):Structured Streaming Sources 输入源
  2. docker 主机ip_docker容器指定ip
  3. python中isinstance(3、object)_Python中为什么推荐使用isinstance来进行类型判断?而不是type...
  4. notepad比对文本_仵航说 notepad++怎么对比文件 仵老大
  5. ABAP, Maven, CF App和Webpack的build
  6. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...
  7. Pub / Sub本地模拟器
  8. 如何设计一个权限系统
  9. 第57条:将局部变量的作用域最小化
  10. C++之保护和私有构造函数与析构函数
  11. Unity Asssetbundle问题记录
  12. STM32基础分析——USART的DMA模式
  13. FPGA学习积累之AM调制解调(解调部分没搞太明白)
  14. 读钱钟书的《写在人生边上 人生边上的边上 石语》(一)
  15. 中国电影的网络付费点播发行:现状与展望
  16. 移动端网页禁止下拉刷新css
  17. matlab将多项式通分,matlab多项式因式分解
  18. Java面试错题集1
  19. 卷积神经网络超详细介绍(转载)
  20. 技嘉显卡性能测试软件,你好六啊!GTX 1660 Ti深度测试:升吧

热门文章

  1. 消防应急通讯平台设计
  2. [shell] find 指令的使用 (如:找到大于10M的文件)
  3. 一篇文章带你搞定 SpringBoot 配合 SpringSecurity 实现自动登录功能
  4. 配置 hosts 浏览器访问仍然不生效
  5. Vue/js 富文本编辑器、excel编辑器合集
  6. html页面导出文件大小,【实战】通过 JS 将 HTML 导出为 PDF 文档
  7. 零基础想学习大数据?(同样适合有一定基础想进阶的)跟着这几个步骤走
  8. 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )
  9. js实现:百钱买百鸡, 求红白黑球的个数
  10. ADAS自动驾驶辅助系统通讯协议「ADASIS Protocol」接口定义解析(二)详细