【vue】盘点Vue2和Vue3的10种组件通信方式:

news2025/1/12 22:54:19

文章目录

        • 一、介绍:
        • 二、props
            • 【1】选项式API
            • 【2】组合式Api
            • 【3】setup语法糖
        • 三、emit
            • 【1】选项式API
            • 【2】组合式Api
            • 【3】setup语法糖
        • 四、attrs和listeners
            • 【1】选项式API
            • 【2】组合式API
            • 【3】setup语法糖
        • 五、provide/inject
            • 【1】选项式API
            • 【2】组合式API
            • 【3】setup语法糖
        • 六、parent/children
        • 七、expose&ref
            • 【1】选项式API
            • 【2】组合式API
            • 【3】setup语法糖
        • 八、EventBus/mitt
            • 【1】选项式API
            • 【2】组合式API
            • 【3】setup语法糖


一、介绍:

Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。其中将要实现的通信方式如下表所示:

方式vue2vue3
父传子propsprops
子传父$emitemits
父传子$attrsattrs
子传父$listeners无(合并到 attrs方式)
父传子provideprovide
子传父injectinject
子组件访问父组件$parent
父组件访问子组件$children
父组件访问子组件$refexpose&ref
兄弟传值EventBusmitt

二、props

props是组件通信中最常用的通信方式之一。父组件通过v-bind传入子组件通过props接收,下面是它的三种实现方式

【1】选项式API

在这里插入图片描述

【2】组合式Api

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

三、emit

子组件可以通过emit发布一个事件并传递一些参数,父组件通过v-on进行这个事件的监听.

【1】选项式API

在这里插入图片描述

【2】组合式Api

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

四、attrs和listeners

子组件使用$attrs可以获得父组件除了props传递的属性和特性绑定属性 (class和 style)之外的所有属性。

子组件使用$listeners可以获得父组件(不含.native修饰器的)所有v-on事件监听器,在Vue3中已经不再使用;但是Vue3中的attrs不仅可以获得父组件传来的属性也可以获得父组件v-on事件监听器

【1】选项式API

在这里插入图片描述

【2】组合式API

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

五、provide/inject

provide:是一个对象,或者是一个返回对象的函数。里面包含要给子孙后代属性
inject:一个字符串数组,或者是一个对象。获取父组件或更高层次的组件provide的值,既在任何后代组件都可以通过inject获得

【1】选项式API

在这里插入图片描述

【2】组合式API

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

六、parent/children

$parent: 子组件获取父组件Vue实例,可以获取父组件的属性方法
$children: 父组件获取子组件Vue实例,是一个数组,是直接儿子的集合,但并不保证子组件的顺序

在这里插入图片描述

七、expose&ref

$refs可以直接获取元素属性,同时也可以直接获取子组件实例

【1】选项式API

在这里插入图片描述

【2】组合式API

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

八、EventBus/mitt

兄弟组件通信可以通过一个事件中心EventBus实现,既新建一个Vue实例来进行事件的监听,触发和销毁。
Vue3中没有了EventBus兄弟组件通信,但是现在有了一个替代的方案mitt.js,原理还是 EventBus

【1】选项式API

在这里插入图片描述

【2】组合式API

在这里插入图片描述

【3】setup语法糖

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux根目录的文件系统是如何被挂载的

第一步是先在内存中创建rootfs.这时rootfs只有 “/” 目录。 https://mp.weixin.qq.com/s?__bizMzUxNDUwOTc0Nw&mid2247484182&idx1&snc807877da1181fa97175c1a6602ad763&chksmf9459dcace3214dcee56f68ac03b8b377f4febf5fd8ca28e2ff9a403ac0940f91c6617338625…

1.(python数模)单函数读取常用文件

Python单函数读取常用文件 代码如下: import pandas as pd# 读取数据文件 def readDataFile(readPath): # readPath: 数据文件的地址和文件名try:if (readPath[-4:] ".csv"):dfFile pd.read_csv(readPath, header0, sep",") # 间隔符为逗…

企业MR虚拟直播有哪些特色,值得一试

阿酷TONY / 长沙 / 2023-9 很多网友问我,到底什么是MR直播,好吧,上视频,快,挺急的: 到底什么是MR直播(附上MR直播效果的视频实例) [ 绿幕抠像 虚拟场景(三维场景&#…

2020ICPC南京站

K K Co-prime Permutation 题意:给定n和k,让你构造n的排列,满足gcd(pi, i)1的个数为k。 思路:因为x和x-1互质,1和任何数互质,任何数和它本身不互质 当k为奇数时,p11,后面k-1个数…

进程的状态及其之间的转换

进程的状态及其之间的转换是操作系统管理进程的核心机制之一。不同的操作系统或教材可能对进程的状态有略微的差异,但基本上可以总结为以下几种状态: 新建(New):进程正在被创建。就绪(Ready)&a…

手写Openfeign实现原理——极简版

文章目录 前言Openfeign实现思路前期准备基本依赖项 开始实现自定义注解自定义代理类定义创建代理对象的工厂InstantiationAwareBeanPostProcessor实现bean的注入OpenInstantiationAwareBeanPostProcessor 自定义 feign接口启动类小结 踩坑记录ImportComponent和Configuration区…

Standford Compiler Course Assignment 1

第一个作业是写一个词法分析的rule,词法分析对我帮助不大,主要是理解使用就可以,就大部分参照github上的实现了。 实验需要注意的内容: 1)cool/include/PA2/cool-parse.h 里面定义了需要处理的关键字 /* Tokens. */ …

基本介绍——数据挖掘

1.数据挖掘的定义 数据挖掘是采用数学的、统计的、人工智能和神经网络等领域的科学方法,如记忆推理、聚类分析、关联分析、决策树、神经网络、基因算法等技术,从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势,并…

新款奥迪 A7L 正式上市,媒介盒子多家媒体助阵

新款奥迪 A7L 正式上市,媒介盒子多家媒体助阵! 哈喽,大家好,今天媒介盒子小编又来跟大家分享媒体推广的干货知识了,本篇分享的主要内容是:新车上市,上汽奥迪A7L的营销策略。 新款奥迪 A7L 正式上市,新车推出 11 款车型,售价为 4…

探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利

文章目录 1. 弹性伸缩2. 容器化3. 自动化部署4. 存储管理5. 服务发现和负载均衡6. 监控和日志记录7. 多云支持8. 多版本管理9. 安全性和隔离10. 社区支持和生态系统 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点…

部署java程序的服务器cpu过高如何排查和解决

1.top命令找到占用CPU高的Java进程PID 2.根据进程ID找到占用CPU高的线程 ps -mp pid -o THREAD,tid | sort -r ps -mp 124682 -o THREAD,tid | sort -r 3.将指定的线程ID输出为16进制格式 printf “%x\n” tid printf "%x\n" 6384 18f0 4.jstack pid |…

C++中基类和派生类的析构函数

和构造函数类似,析构函数也不能被继承。与构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉。 另外析构函数的执行顺序和构造函数的…

分类算法系列④:朴素贝叶斯算法

目录 1、贝叶斯算法 2、朴素贝叶斯算法 3、先验概率和后验概率 4、⭐机器学习中的贝叶斯公式 5、文章分类中的贝叶斯 6、拉普拉斯平滑系数 6.1、介绍 6.2、公式 7、API 8、示例 8.1、分析 8.2、代码 8.3、⭐预测流程分析 🍃作者介绍:准大三…

Modelsim查看断言

断言编译modelsim 在modelsim中开启断言编译和显示功能: 【编译verilog代码时按照system verilog进行编译】 vlog -sv abc.v 或者使用通配符编译所有的.v或者.sv文件 ( vlog -sv *.sv *.v) 【仿真命令加一个-assertdebug】 vsim -a…

华为云服务

【计算】 【存储】 对象存储服务 OBS 对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。 OBS系统和单个桶都没有总数据容量和对象/文件数量的限制…

视频文件损坏无法播放如何修复?导致视频文件损坏的原因

如果我们遇到因视频文件损坏而无法正常播放,我们该怎么办?这种情况通常意味着视频文件已经损坏。我们不能访问、编辑或使用它们。那么应该用什么正确的工具和修复程序来修复视频呢? 视频文件损坏的原因 了解视频损坏如何修复之前&#xff0c…

【板栗糖GIS】——360浏览器如何安装微信读书插件

目录 1. 下载插件 ​2. 解压edge插件 3. 点击360浏览器的插件管理 4. 加载已解压的扩展程序 前情提示:不要从任务栏打开360浏览器,要从桌面快捷键打开 1. 下载插件 截止到2023年9月1日,github提供的为0.03版本,下载后会得到…

AP51656 LED车灯电源驱动IC 兼容替代PT4115 PT4205 PWM和线性调光

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源 用于驱动一颗或多颗串联LED 输入电压范围从 5V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用高端电流采样设置 …

ThingsKit物联网平台告警中心之告警记录

概述 当设备达到预先指定的阈值时,平台会自动产生告警,可以通过告警记录及时查看详细的告警信息以及对告警进行处理和反馈。 详情 场景联动中设备产生的告警记录详情。 :::info 💡 提示 告警记录状态:激活未确认、激活已确认、…

使用 Amazon SageMaker 的生成式 AI 定制个性化头像

生成式 AI 已经成为各行业创意过程增强和加速的常用工具,包括娱乐、广告和平面设计。它可以为观众创造更个性化的体验,并提高最终产品的整体质量。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮…