当前位置: 首页 > news >正文

vue3 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>
  <div><router-view v-slot="{ Component }" v-if="isRouterAlive"><keep-alive><component :is="Component" /></keep-alive></router-view></div>

http://www.lryc.cn/news/119591.html

相关文章:

  • Neo4j笔记-数据迁移(导出/导入)
  • 请求转发和请求重定向
  • TOMCAT的多实例部署和动静分离
  • 阿里微服务seata组件tc告诉rm进行提交的时候,rm提交失败了seata怎么办呢?
  • 已解决 RuntimeError: There is no current event loop in thread ‘Thread-1‘.
  • Android的学习系列之Android Studio Setup安装
  • Python测试框架pytest:常用参数、查找子集、参数化、跳过
  • Android 13 Hotseat定制化修改
  • 【VUE】7、VUE项目中集成watermark实现页面添加水印
  • Rider无法识别Todo Comment
  • 用 docker 创建 jmeter 容器,能做性能测试?
  • Token 失效退出至登录页面
  • 微服务系列(2)--注册中心
  • VSCode使用CMake断点调试
  • Python爬虫异常处理心得:应对网络故障和资源消耗
  • 【CSS】CSS 布局——常规流布局
  • flutter开发实战-实现左右来回移动的按钮引导动画效果
  • ROS实现自定义信息以及使用
  • 初始C语言——详细讲解操作符以及操作符的易错点
  • 论文写作常用词句积累
  • 伺服系统::编码器
  • 计算机网络 数据链路层 虚拟局域网 VLAN
  • Git全栈体系(五)
  • spring-boot webservice的例子
  • 第八章 SpringBoot @ConfigurationProperties配置绑定
  • 【SpringBoot】88、SpringBoot中使用Undertow替代Tomcat容器
  • java8 求和
  • 手眼标定眼在手上
  • 【数据结构】初始二叉树
  • 创建和使用角色(RHCE)