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

Vue3 provide 和 inject的使用

在 Vue 中,provideinject 是 Composition API 的一对功能,用于父子组件之间的依赖注入。它们的作用是让父组件可以向其所有子组件提供数据或方法,而不需要通过逐层传递 props

1. provide

provide 用于父组件中,提供数据或方法,供其子组件使用。

<script setup>
import { provide } from 'vue';# 要给子组件传值isLogin,ajax里会重新赋值isLogin,provide写在外层即可,ajax里重新赋值后子组件会自动监听更新为新的值
const isLogin = ref(!1);
provide('isLogin', isLogin);
const checkIsLogin = () => {(api as any).User.isLogin().then((res) => {isLogin.value = !0;});
}
checkIsLogin();
</script>

2. inject

inject 用于子组件中,接收父组件通过 provide 提供的值。

父组件数据变化,想要子组件实时跟着变,injext接收时要设置为ref

重新赋值后子组件会自动监听更新为新的值

<script setup>
import { inject } from 'vue';let isLogin= ref(inject("isLogin"))</script><template><p>{{ message }}</p>
</template>

使用场景

  • 父子组件传值:适用于层级较深的组件传递数据,避免层层传递 props。
  • 跨组件共享数据:适用于在多个组件中共享相同的数据。

注意

  • provide 和 inject 主要用于组件之间的通信,特别是当组件的嵌套较深时,它们可以避免 prop drilling(逐层传递 props)。
  • 它们不具备响应式特性,除非提供的对象是响应式的。如果希望注入的数据是响应式的,可以通过 reactive 或 ref 包装。
http://www.lryc.cn/news/488496.html

相关文章:

  • 掌握Git分布式版本控制工具:从基础到实践
  • AndroidStudio与开发板调试时连接失败或APP闪退的解决方案,涉及SELINUX及获取Root权限
  • VMWARE虚拟交换机的负载平衡算法
  • 安卓InputDispatching Timeout ANR 流程
  • 【Nginx从入门到精通】03 、安装部署-让虚拟机可以联网
  • java 增强型for循环 详解
  • 浪潮云启操作系统(InLinux) bcache宕机问题分析
  • 038集——quadtree(CAD—C#二次开发入门)
  • 备赛蓝桥杯--算法题目(1)
  • 机器学习100道经典面试题库(二)
  • Unet++改进37:添加KACNConvNDLayer(2024最新改进方法)
  • 基于 Levenberg - Marquardt 法的 BP 网络学习改进算法详解
  • MySQL 8.0与PostgreSQL 15.8的性能对比
  • qt连接postgres数据库时 setConnectOptions函数用法
  • MySQL45讲 第二十七讲 主库故障应对:从库切换策略与 GTID 详解——阅读总结
  • JavaWeb笔记整理——Spring Task、WebSocket
  • 基于SpringBoot+RabbitMQ完成应⽤通信
  • Flutter踩坑记录(一)debug运行生成的项目,不能手动点击运行
  • React的hook✅
  • 2024.5 AAAiGLaM:通过邻域分区和生成子图编码对领域知识图谱对齐的大型语言模型进行微调
  • 从熟练Python到入门学习C++(record 6)
  • jenkins的安装(War包安装)
  • WPS 加载项开发说明wpsjs
  • 【Anomaly Detection论文阅读记录】PaDiM与PatchCore模型的区别与联系
  • uni-app Vue3语法实现微信小程序样式穿透uview-plus框架
  • K8S基础概念和环境搭建
  • [服务器] 腾讯云服务器免费体验,成功部署网站
  • vue中el-select 模糊查询下拉两种方式
  • 深入解析PostgreSQL中的PL/pgSQL语法
  • Vue 3集成海康Web插件实现视频监控