Vue 强制页面刷新(provide 和 inject)
一、常规方法
location.reload();
this.$rotuer.go(0);
存在问题:
1.强制刷新页面,出现短暂的空白闪烁。
2.h5页面在安卓机方法不兼容。
- this.$rotuer.go(0) 安卓、ios都不支持、pc支持
- location.reload() 安卓不支持 、 ios支持、pc支持
二、provide和inject实现页面刷新
祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。
1、在 App.vue 文件里写入 provide 的方法
<template><div id="app"><keep-alive> <router-view v-if="isRouterAlive"></router-view></keep-alive></div>
</template><script>
export default {name: 'App',provide () { // 在祖先组件中通过 provide 提供变量return {reload: this.reload // 声明一个变量}},data () {return {isRouterAlive: true // 控制 router-view 是否显示达到刷新效果}},methods: {// provide中声明的变量reload () {// 通过 this.isRouterAlive 控制 router-view 达到刷新效果this.isRouterAlive = false this.$nextTick(function () {this.isRouterAlive = true})}}
}</script>
2、子孙组件中 inject 引用声明的变量
<template>
<div class="page"><button @click="reloadFun">刷新</button>
</div>
</template><script>
import Vue from 'vue';export default {inject:['reload'], // 使用 inject 注入 reload 变量 data(){return{}},methods: {reloadFun(){this.reload(); // 直接使用}},mounted() {}}
</script>
Vue 强制页面刷新(provide 和 inject)相关推荐
- nignx部署Vue单页面刷新路由404问题解决
nignx部署Vue单页面刷新路由404问题解决 参考文章: (1)nignx部署Vue单页面刷新路由404问题解决 (2)https://www.cnblogs.com/wuchenggong/p/ ...
- [vue] 说说你对provide和inject的理解
[vue] 说说你对provide和inject的理解 通过在父组件中inject一些数据然后再所有子组件中都可以通过provide获取使用该参数,主要是为了解决一些循环组件比如tree, menu, ...
- vue.js页面刷新出现闪烁问题的解决
vue.js页面刷新出现闪烁问题的解决 参考文章: (1)vue.js页面刷新出现闪烁问题的解决 (2)https://www.cnblogs.com/wnsry/p/9132398.html 备忘一 ...
- vue实现页面刷新以及局部刷新的方法
1.利用Vue里面的provide+inject组合,实现全页面刷新 通过在APP页面进行demo进行刷新,不会像前两种那样出现短暂的闪烁效果,提升用户体验,通常可以使用这种方式 (1)在APP页面中 ...
- vue组件深度传值provide、inject,值类型响应式的方法
文章目录 前言 一.provide,inject是什么? 二.使用步骤 1.祖先组件provide注入,并且传入的是整个this指向 2.后代组件接收 总结 前言 最近封装了一个上传,下载,查看附件的 ...
- 小程序中强制页面刷新
1.tab页面切换时强制页面数据刷新 // pageTabB => pageTabA wepy.switchTab({ url: '/pages/pageTabA',success(){let ...
- vue全局变量 页面刷新时数据丢失问题
页面刷新后vue全局变量数据丢失 在开发中,我们需要将一些数据存到全局变量中,如用户的用户名等,便于页面展示,保存从服务器发送请求返回的数据,以避免在不同组件发送相同请求时,重复请求服务器. 方法一: ...
- vue所有页面刷新一次mounted(以及所有生命周期函数)执行两次的解决方法
刚开始我发现页面每刷新一次,接口都请求两次,我以为是因为axios发送OPTIONS预检请求,但是我发现两次请求都是正常的get或者是post请求,并且只有在页面刷新的时候请求才触发两次,点击查询或者 ...
- vue关闭页面刷新页面清除缓存
mounted() {this.enterPage()}, destroyed(){this.leavePage() }, methods: { /* 打开:load 关闭:beforeload+un ...
最新文章
- RStudio(You‘re using a non-UTF8 locale, therefore only ASCII characters will work)
- 软件测试部分练习题答案
- Win11如何跳过开机更新 Win11跳过开机更新教程
- mysql 与 xls 连接_数据库MySQL与xls文件的互导
- 1.3 编程基础之算术表达式与顺序执行 10 计算并联电阻的阻值
- 关于Linux平台视频采集程序的修改
- 硬盘分区表知识—详解硬盘MBR
- JDBC如何判断数据库的表是否存在
- surf算法matlab代码,surf算法matlab源码
- 日企抛等离子淘汰论 专家称其不敌中国企业
- 金融数据api接口记录(二)
- 黑平台Seener Tech Limtied在MT5上面搭建虚假交易 鼓动操作爆仓
- LC-3 子程序调用与模拟栈调用递归函数
- xv6操作系统中增加一个系统调用
- 基于snowfall的玫瑰花瓣飘落效果
- 雀巢“可持续发展列车”驶入瑞士驻华大使馆
- Oracle查询数据提示ORA-00942:表或视图不存在
- 哈希表(HashMap)的学习与实现
- java网页随机点名册_javascript网页随机点名实现过程解析
- mpv播放器键盘快捷键