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

`provide` 和 `inject` 组件通讯:实现跨组件层级通讯

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

在 Vue3 中,provideinject 是用于实现跨组件层级通讯的 API。

provide

provide 允许一个祖先组件向其所有子孙组件注入一个值,不论组件层次有多深,并在起始和终点组件中使用。

使用 provide

import { provide } from 'vue';export default {
setup() {
const sharedState = reactive({ message: 'Hello from ancestor' });// 提供 sharedState 给所有子孙组件
provide('sharedState', sharedState);
}
};

inject

inject 允许后代组件接收祖先组件通过 provide 提供的值。

使用 inject

import { inject } from 'vue';export default {
setup() {
// 注入祖先组件提供的 sharedState
const sharedState = inject('sharedState');return {
sharedState
};
}
};

特点

  • 跨层级通讯provideinject 可以实现跨多个层级的组件通讯。
  • 解耦:使用 provideinject 可以减少组件之间的直接依赖,使得组件更加独立和可复用。
  • 响应式:通过 provide 提供的响应式数据,注入的组件也能响应数据的变化。

注意事项

  • provideinject 主要用于解决多层级组件间的状态共享问题,不应该滥用,以避免造成难以理解和维护的状态管理。
  • 提供的数据默认是响应式的,如果不需要响应式,可以使用 readonly 包装。

总结

provideinject 是 Vue3 中用于实现跨组件层级通讯的强大工具。它们提供了一种简洁的方式来共享状态,避免了 props 层层传递的繁琐。合理使用 provideinject 可以提高组件的复用性和可维护性。

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

相关文章:

  • 机器学习15-XGBoost
  • 微服务拆分——nacos/Feign
  • 华为云Flexus+DeepSeek征文 | 基于Flexus X实例的金融AI Agent开发:智能风控与交易决策系统
  • 李宏毅2025《机器学习》第三讲-AI的脑科学
  • 蓝牙数据通讯,实现内网电脑访问外网电脑
  • WPF调试三种工具介绍:Live Visual Tree、Live Property Explorer与Snoop
  • SylixOS 下的消息队列
  • Jupyter notebook调试:设置断点运行
  • Redis后端的简单了解与使用(项目搭建前置)
  • DeepEP开源MoE模型分布式通信库
  • 洛谷P3953 [NOIP 2017 提高组] 逛公园
  • 【DCS开源项目】—— Lua 如何调用 DLL、DLL 与 DCS World 的交互
  • day44-硬件学习之arm启动代码
  • 【Datawhale组队学习202506】零基础学爬虫 02 数据解析与提取
  • 【simulink】IEEE5节点系统潮流仿真模型(2机5节点全功能基础模型)
  • 【智能体】dify部署本地步骤
  • LeetCode第279题_完全平方数
  • 湖北理元理律师事务所企业债务纾困路径:司法重整中的再生之道
  • 蓝桥杯备赛篇(上) - 参加蓝桥杯所需要的基础能力 1(C++)
  • 华为OD机试_2025 B卷_判断一组不等式是否满足约束并输出最大差(Python,100分)(附详细解题思路)
  • 车载电子电器架构 --- 电子电气架构设计方案
  • QC -io 服务器排查报错方式/报错: Failed to convert string to integer of varId variable!“
  • 2.7 Python方法调用机制解析:从描述符到字节码执行
  • 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
  • 【无标题】使用 Chocolatey 安装 WSL 管理工具 LxRunOffline
  • 贪心算法思路详解
  • Mac电脑-Markdown编辑器-Typora
  • 利用nRF54L15-DK的DEBUG OUT接口调试用户设计的ARM处理器系统
  • springboot口腔管理平台
  • 【分布式理论】读确认数与写确认数:分布式一致性的核心概念