当前位置: 首页 > 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 可以提高组件的复用性和可维护性。

相关文章:

  • 成长笔记——多串口发送与接收
  • 企业公用电脑登录安全管控的终极方案:ASP操作系统安全登录管控方案
  • 编程基础:耦合
  • JVM(8)——详解分代收集算法
  • 无线Debugger攻防全解:原理剖析与突破之道
  • 个人博客使用NextWatermark WordPress插件为网站图片自动批量添加水印,保护图片版权
  • 【软考高级系统架构论文】论云上自动化运维及其应用
  • 【环境配置】在Ubuntu Server上安装5090 PyTorch环境
  • 【Linux-shell】探索Dialog 工具在 Shell 图形化编程中的高效范式重构
  • 【JavaWeb】Servlet+JSP 实现分页功能
  • PostgreSQL/Hologres 外部服务器系统表 pg_foreign_server 详解
  • React 组件通信
  • 解锁K-近邻算法:数据挖掘的秘密武器
  • 使用Trae编辑器与MCP协议构建高德地图定制化服务
  • vscode内嵌浏览器实时预览vue项目
  • Pytorch3D 中涉及的知识点汇总
  • Stable Diffusion 项目实战落地:绘制真人卡通IP形象(一)甄嬛旗装格格:从“真人”到“卡通”化,神奇的转变之旅!
  • 领域驱动设计(DDD)【0】之DDD理论概念认识
  • wordpress外贸独立站常用留言表单插件 contact form 7
  • Linux TCP/IP协议栈中的TCP输入处理:net/ipv4/tcp_input.c解析
  • 云服务器可以做图片外链网站吗/网络营销策划书论文
  • 郑州高新区做网站开发的公司/如何在互联网推广自己的产品
  • 在线网页转pdf/南宁seo外包靠谱吗
  • wordpress 批量修改分类/seo视频教学网站
  • 怎么做苹果手机网站首页/如何做百度关键词推广
  • php做网站商城系统怎么样/长春seo优化企业网络跃升