Vue3 的 provide 、 inject 使用

Vue3 的 provide 、 inject 使用

provide 、 inject 一般用来实现跨组件通信,避免层层传参,操作繁琐的问题。

provide( 属性,属性值 ):里面包含了要给子孙后代传递的东西也可以是一个操作自己某个功能的方法。

inject(接收的属性名,default):default指的是默认值。

以下我是用对父组件进行刷新的方法来对provide 、 inject进行举例: 

父组件:

复制代码
<template>
    <router-view v-if="isRouterView"></router-view>
</template>

<script lang="ts" setup>
import { ref, provide, nextTick } from "vue";
const isRouterView = ref(true);
//父组件刷新方法
const reload = () => {
  isRouterView.value = false;
  nextTick(() => {
    isRouterView.value = true;
  })
}
//provide进行注册
provide('reload', reload);
</script>
复制代码

之后子子孙孙组件操作:

复制代码
<script lang="ts" setup>
//子孙组件引入inject
import { ref,inject } from "vue";


const reload = inject("reload");

//调用方法使用
const handleClick = (val: any) => {
   if (typeof reload == "function") reload();
};
</script >
复制代码

 

posted @   奔跑的哈密瓜  阅读(1188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示