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

vue组件间通信

Vue组件之间通信方式有哪些

一、父子组件通讯

1、props,emit

父组件可以通过props给子组件传递变量。子组件可以通过emit派发自定义事件,使父组件可以获得事件函数传递过来的形参。

2、$parent、$children、ref

父组件可以通过 c h i l d r e n 获取子组件,从而获取子组件的属性和方法。 v u e 3 已不支持 children获取子组件,从而获取子组件的属性和方法。vue3已不支持 children获取子组件,从而获取子组件的属性和方法。vue3已不支持children,但是父组件还可以通过 r e f s 来获取子组件实例来获取子组件的属性和方法。而子组件也可以通过 refs来获取子组件实例来获取子组件的属性和方法。而子组件也可以通过 refs来获取子组件实例来获取子组件的属性和方法。而子组件也可以通过parent来获取父组件的属性和方法。

二、兄弟组件通讯

1、$parent、$root

通过父组件桥接传值通讯。

2、eventbus

vue2可以通过构造一个vue实例对象,通过调用vue.$emit派发事件,$on监听事件来实现兄弟组件的通讯,$off解除事件绑定。但是在vue3中废弃了$on方法,推荐使用第三方库mitt

3、vuex

三、跨层级组件通讯

1、provide、inject

这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。如果你熟悉 React,这与 React 的上下文特性很相似。

provide

  • 一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。在该对象中你可以使用 ES2015 Symbols 作为 key,但是只在原生支持 Symbol 和 Reflect.ownKeys 的环境下可工作。

inject

  • 一个字符串数组
  • 一个对象

2、$attrs

包含了父作用域中不作为 prop 被识别 (且获取) 的 attribute 绑定 (classstyle 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (classstyle 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。

3、eventbus

4、vuex

四、另外

1、slot

2、mixin

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

相关文章:

  • 编程框架概述:MVC, MVP, MVVM, Flux/Redux, 和 Clean Architecture
  • 多维时序 | Matlab实现CNN-BiLSTM-Mutilhead-Attention卷积双向长短期记忆神经网络融合多头注意力机制多变量时间序列预测
  • np.argsort排序问题(关于位次)-含GitHub上在numpy项目下提问的回复-总结可行方案
  • Element中的el-input-number+SpringBoot+mysql
  • Jupyter Notebook五分钟基础速通
  • 基于SpringBoot的SSM整合案例
  • [SS]语义分割_转置卷积
  • 面板小程序命令行工具介绍
  • DBA技术栈MongoDB: 数据增改删除
  • Xcode查看APP文件目录
  • 【视频媒体】深入了解直播视频流
  • 【01】mapbox js api加载arcgis切片服务
  • 图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1
  • 【Docker】安装nacos以及实现负载均衡
  • 如何用数据赋能社媒营销决策?
  • 初识k8s(概述、原理、安装)
  • 【Java】Maven的基本使用
  • 【RT-DETR有效改进】遥感旋转网络 | LSKNet动态的空间感受野网络(轻量又提点)
  • 【进阶之路】如何提升 Java 编程内力?
  • Git一台电脑 配置多个账号
  • 2024年华为OD机试真题-素数之积-Java-OD统一考试(C卷)
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(2)
  • QT上位机开发(动态数据采集与监控)
  • vue2 -- 截图工具html2canvas
  • 笔记-孙子兵法-第三篇-谋攻(1)-不战而屈人之兵,上兵伐谋,韩信之死
  • kafka参数配置参考和优化建议 —— 筑梦之路
  • 如何本地搭建Splunk Enterprise数据平台并实现任意浏览器公网访问
  • FlinkAPI开发之状态管理
  • initdb: command not found【PostgreSQL】
  • QT第六天