Vue3组件通信 含有详细的步骤和解释

news2024/11/18 15:43:20

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、父传子 defineProps
    • 1.使用运行时声明
    • 2.使用针对类型的声明
  • 二、子传父 defineEmits
    • 1.使用运行时声明
    • 2.使用针对类型的声明
  • 总结


前言

Vue2的父子组件通信是利用props和$emit。具体可以看下之前发布的博客:Vue2组件通信
而Vue3是利用definePropsdefineEmits
defineProps 接收与 props 选项相同的值,defineEmits 接收与 emits 选项相同的值。
具体详细内容可以参考官网:Vue3 defineProps与defineEmits
如果使用了 TypeScript,使用纯类型声明来声明 prop 和 emit 也是可以的。官方教程如下:针对类型的 props、emit 声明
注意:defineProps 或 defineEmits 要么使用运行时声明,要么使用类型声明。同时使用两种声明方式会导致编译报错!


一、父传子 defineProps

场景:父组件传递值给子组件,子组件会利用definePropes接收并展示出来。如果父组件没有传值,那么子组件就会显示它设置的默认值了。

1.使用运行时声明

父组件传值,代码如下图所示:
在这里插入图片描述
效果如下:
在这里插入图片描述
如果父组件没有传值,那么子组件就会显示它设置的默认值了。代码如下图所示:
在这里插入图片描述
效果如下:
在这里插入图片描述

2.使用针对类型的声明

选中defineProps,按住ctrl并点击defineProps,就可以看到源码中defineProps的内容,可以看到JavaScript和TypeScript是不一样的写法。
在这里插入图片描述

官网:针对类型的 defineProps 声明的不足之处在于,它没有可以给 props 提供默认值的方式。为了解决这个问题,我们还提供了 withDefaults 编译器宏。代码会被编译为等价的运行时 props 的 default 选项。此外,withDefaults 辅助函数提供了对默认值的类型检查,并确保返回的 props 的类型删除了已声明默认值的属性的可选标志。

父组件传值的情况,代码如下图所示:
在这里插入图片描述
效果如下:
在这里插入图片描述
父组件不传值的情况,代码如下图所示:
在这里插入图片描述
效果如下:
在这里插入图片描述
这就实现了父传子的功能了。

二、子传父 defineEmits

选中defineEmits,按住ctrl并点击defineEmits,就可以看到源码中defineEmits的内容,可以看到JavaScript和TypeScript是不一样的写法。
在这里插入图片描述

如果使用了 TypeScript,使用纯类型声明来声明 prop 和 emit 也是可以的。

场景:父组件中定义了一个num,初始值为1。定义了一个方法用来增加num值。子组件发射自定义事件,父组件中接收自定义事件,并绑定在对应的方法上,监听子组件的自定义事件;监听到事件之后,就到父组件的方法中对num进行递增处理。

1.使用运行时声明

在这里插入图片描述
可以看到点击子组件的按钮,父组件中的num值会递增。
在这里插入图片描述

2.使用针对类型的声明

我们用ts的写法,ts写法要先声明emit,然后再调用。
在这里插入图片描述
可以看到,点击子组件中的按钮,父组件中的num值就会递增。
在这里插入图片描述
这就实现了子传父的功能了。


总结

以上,就是要分享的关于Vue3父子组件通信的内容了。

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

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

相关文章

PMP课堂模拟题目及解析(第4期)

31. 首席执行官要求项目经理提供绩效报告。项目经理应该在这份报告中包含哪些内容? A. 已完成百分比和经验教训 B. 问题的当前状态以及更新后的干系人参与评估矩阵 C. 项目风险的绩效测量指标 D. 已完成的工作和关键绩效指标 32. 在一个项目的最终收尾活动期…

九联UNT413A-S905L3A-免拆U盘卡刷固件包-当贝纯净桌面-内有教程

九联UNT413A-S905L3A-免拆U盘卡刷固件包-当贝纯净桌面-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件&#…

迪赛智慧数——饼图(玫瑰饼图):菜品味道受欢迎程度

效果图 大家最爱吃的竟是它!咸鲜占比高达23.53%! 民以食为天,你最喜欢的美食口味是什么呢? 好吃的太多,你应该很难确切地评出你心中的第一名吧。据数据调查显示,咸鲜口味最受欢迎,其次是麻辣、…

SUNTANS模型学习(9)——学习Tidal forcing算例

学习Tidal forcing算例 简介网格配置与地形定解条件设置初始条件设置边界条件设置开边界处的通量计算(OpenBoundaryFluxes)开边处的速度、水位(BoundaryVelocities) 其它参数配置模拟结果 简介 SUNTANS中 tidal forcing 算例的全…

数据脱敏的几种方案

文章目录 什么是数据脱敏?数据脱敏在生活中的应用静态脱敏与动态脱敏数据脱敏的几种方案sql数据脱敏java代码实现脱敏mybatis-mate实现脱敏springCloud网关拦截响应体实现脱敏openGauss 动态数据脱敏解决方案 什么是数据脱敏? 数据脱敏也叫数据的去隐私…

5款办公必备的好软件,你值得拥有

随着网络信息技术的发展,越来越多的人在办公时需要用到电脑了。如果你想提高办公效率,那么就少不了工具的帮忙,今天给大家分享5款办公必备的好软件。 1.文件管理工具——TagSpaces TagSpaces 是一款开源的文件管理工具,它可以通过标签来组织…

测试20K要什么水平?25岁测试工程师成功斩下offer(附面试题)

年少不懂面试经,读懂已是测试人。 大家好,我是一名历经沧桑,看透互联网行业百态的测试从业者,经过数年的勤学苦练,精钻深研究,终于从初出茅庐的职场新手成长为现在的测试老鸟,早已看透了面试官…

@Test单测方法和main方法的区别

区别1:常量池的符号引用 有所不同 今天在下面链接中 学习并测试 string在不同创建方式下 产生几个对象的问题 流程图详解 new String(“abc“) 创建了几个字符串对象_"new string(\"abc\")创建了几个对象"_程序员囧辉的博客-CSDN博客 看下面例子(取自上…

家居家具行业外贸软件解决方案

家具行业,属于装饰行业范畴,如果出售是零售行业,如果生产属于加工行业,如果是带加工,也可以叫二次加工行业。家居行业,泛指家具、床上用品、厨卫用具、室内配饰及日常生活需要的商品,属于消费产…

Ubuntu 桌面版无网络标识

Ubuntu 配置网络的方式有两种: 通过桌面网络标识直接配置通过编辑配置文件配置(很麻烦,而且不方便) 因此,下面介绍如何恢复桌面的网络标识,以便于后续的网络配置。 目录 1、修改配置文件 2、删除原本的…

【腾讯云 FinOps Crane 集训营】Crane平台介绍与实践

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家,51CTO明日之星 📌 擅长领域:全栈工程师、爬虫、ACM算法 🤞Crane平台介绍与实践…

腾讯云轻量4核8G12M服务器带宽CPU流量系统盘测评

腾讯云轻量应用服务器4核8G12M带宽,12M公网带宽,下载速度峰值为1536KB/s,即1.5M/秒,2000GB月流量,折合每天66GB流量,系统盘为180GB SSD盘,腾讯云百科来详细说下轻量4核8G12M配置服务器CPU计算性…

【SpringCloud】Eurake注册中心与Ribbon负载均衡原理

目录 一、服务提供者与服务消费者 二、远程调用存在的问题 三、Eureka原理 四、Eureka架构 五、搭建Eureka服务 六、Eureka服务注册 七、Eureka服务发现 八、Ribbon负载均衡流程 九、Ribbon负载均衡源码 十、Ribbon负载均衡策略 十一、Ribbon饥饿加载 一、服务提供者…

【Linux】进程间通信 —— 管道

文章目录 📕 进程间通信介绍📕 匿名管道原理使用读写规则特点 📕 命名管道原理使用匿名管道和命名管道的区别 📕 进程间通信介绍 进程间通信,顾名思义,就是两个进程之间的 “交流” ,我们知道&…

Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

前言 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。虽然说,目前状况是Kafka更为火热,但更为广泛的应该还属老牌的RabbtiMQ和Alibaba自主…

Android WebRtc+SRS/ZLM视频通话(2):安装SRS

Android WebRtcSRS/ZLM视频通话(2):安装SRS 来自奔三人员的焦虑日志 接着上一章内容,继续来安装开源流媒体系统(SRS),可以按官方教程或者直接问ChatGPT安装教程,又或者百度一下照着大…

别开玩笑了!特种兵式旅游,胆小勿进!

【大学生特种兵旅游】是什么梗? 最近在多御浏览器上看新闻的时候看到一个热梗【大学生特种兵旅游】这又是什么梗!!!老阿姨震惊了! 我随即搜索了一下,看到了下面这段介绍: 近日,“特种…

【SpringBoot集成Nacos+Dubbo】企业级项目集成微服务组件,实现RPC远程调用

文章目录 一、需求环境/版本 二、须知2.1、什么是RPC?2.2、什么是Dubbo?2.3、什么是Nacos? 三、普通的SpringBoot项目集成微服务组件方案(笔者给出两种)方案一(推荐)1、导入maven依赖&#xff0…

rocketmq4.9.4 docker安装

rocketmq4.9.4 给对应的路径赋权 chmod -R 777 文件名 不然启动可能报错后者看不到容器日志 systemctl status firewalld 查看防火墙状态 https://www.jianshu.com/p/0c1c3c679ef8 Docker部署RocketMQ(4.9.4)官方镜像和控制台windows、mac、linux全平…