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

vue中子传父之间通信(this.$emit触发父组件方法和.sync修饰符与$emit(update:xxx))

文章目录

  • 前言
  • 一、通过this.$emit触发父组件方法实现
  • 二、.sync修饰符与$emit(update:xxx)


前言

看了几篇帖子,都没有将$emit两种用法汇聚总结在一起。需要额外的浪费时间去查看其他帖子,索性自己总结一下,方便以后查看。


一、通过this.$emit触发父组件方法实现

这种方法调用是我平常最熟悉的,通过触发事件使父组件拿到子组件传递过来的值。

//父组件,将定义的方法传递给子元素
<template><div class="father"><h1>我是父组件</h1><Son :msg="msg" @changeMsg="changeMsg"/></div>
</template><script>
import Son from '@/components/Son.vue'export default {name: 'Father',components: {Son},data(){return{msg:1}}methods:{changeMsg(text,num){console.log(text,num);this.msg=this.msg+1}},
}
</script>//子组件,通过this.$emit触发父组件方法,更改父组件数据,同时可以进行数据传值
<template><div class='son'><h1>我是子组件<button @click="changeFatherData">点我更改父组件数据</button></h1><h1>父组件数据:{{msg}}</h1></div>
</template><script>
export default {name: 'Son',props: {msg: Number,},data(){return{text:"我是子组件数据,我要发送给父组件",num:12}},methods:{changeFatherData(){this.$emit('changeMsg',this.text,this.num)}},
}
</script>

注意
this.$emit(‘changeMsg’,this.text,this.num)
<Son :msg=“msg” @changeMsg=“changeMsg”/>
$emit中的changeMsg方法名称要和@changeMsg名称一样

二、.sync修饰符与$emit(update:xxx)

.sync 修饰符可以实现子组件与父组件的双向绑定,并且可以实现子组件同步修改父组件的值。

//父组件,将定义的方法传递给子元素
<template><div class="father"><h1>我是父组件</h1><Son :msg.sync="message" /></div>
</template><script>
import Son from '@/components/Son.vue'export default {name: 'Father',components: {Son},data(){return{message:1}}
}
</script>//子组件,通过this.$emit触发父组件方法,更改父组件数据,同时可以进行数据传值
<template><div class='son'><h1>我是子组件<button @click="changeFatherData">点我更改父组件数据</button></h1><h1>父组件数据:{{msg}}</h1>  </div>
</template><script>
export default {name: 'Son',props: {msg: Number,},data(){return{num:12}},methods:{changeFatherData(){this.$emit('update:msg',this.num)}},
}
</script>

子组件触发changeFatherData方法,msg信息就会变为12
本质

<son :a.sync="num"></son> 等价于
<son:a="num" @update:a="val => num = val">
</son> 
// 相当于多了一个事件监听,事件名是 update:a,回调函数中,会把接收到的值赋值给属性绑定的数据项中。

参考文字
vue中子组件更改父组件数据
Vue .sync修饰符与$emit(update:xxx)

相关文章:

vue中子传父之间通信(this.$emit触发父组件方法和.sync修饰符与$emit(update:xxx))

文章目录 前言一、通过this.$emit触发父组件方法实现二、.sync修饰符与$emit(update:xxx) 前言 看了几篇帖子&#xff0c;都没有将$emit两种用法汇聚总结在一起。需要额外的浪费时间去查看其他帖子&#xff0c;索性自己总结一下&#xff0c;方便以后查看。 一、通过this.$emit…...

SocketIO 的 html 代码示例

话不多说&#xff0c;以下为前端 SocketIO 代码示例 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"/><title>TestConnect</title><base><script src&quo…...

Vercel Error: (Azure) OpenAI API key not found

题意&#xff1a;Vercel 错误&#xff1a;(Azure) OpenAI API 密钥未找到 问题背景&#xff1a; I implemented openAI API in my Next.js app with the help of langchain library and it works superb on localhost, but in Vercel (ProVersion) it throws an error: 我使用…...

SPSS、Python员工满意度问卷调查激励保健理论研究:决策树、随机森林和AdaBoost|附代码数据

全文链接&#xff1a;https://tecdat.cn/?p37293 原文出处&#xff1a;拓端数据部落公众号 在深入了解公司当前的实际情况和员工内心真实想法的基础上&#xff0c;我们旨在从专业视角出发&#xff0c;为企业在组织管理方面的不足进行诊断&#xff0c;并进行全面审视。 为了…...

常见深度学习优化器总结

Adam 是一种非常流行的优化器&#xff0c;因为它结合了动量和自适应学习率的优点&#xff0c;通常在大多数情况下表现良好。不过&#xff0c;如果你在使用 Adam 时遇到性能问题或希望进一步调优&#xff0c;以下是几种可以考虑的替代优化器&#xff1a; 1. AdamW (Adam with W…...

python并发编程之多线程和多进程

了解过python 编程语言的人&#xff0c;可能很多人都听过&#xff0c;python的多线程是假的。 之所以这么说的原因是因为&#xff0c;大家应该都知道python 是一门解释型语言&#xff0c;在cpython解释器中有一个GIL(Global Interpreter Lock)&#xff0c;全局解释锁&#xff…...

gorm入门——根据条件查询列表

在 GORM 中&#xff0c;你可以通过 Where 方法结合多个条件来查询符合条件的记录列表。Where 方法支持 AND 和 OR 条件&#xff0c;并且可以链式调用以构建复杂的查询。 示例代码&#xff1a; 假设你有一个 User 结构体&#xff0c;并希望根据多个条件查询符合条件的记录列表…...

笔面试编程题总结

8/6诺瓦星云 修改程序 void point(int *p){*p p[2];}; int main() {int c[] {1,2,3,4,5},*p c;point(p1);for(;p <c5;){printf("%d",*p);}return 0; }1、分隔字符串 strtok //c语言 #include <stdio.h> #include <string.h>// 函数声明 char* fin…...

[other][知识]八大行星的英文各是什么?

1、水星英文名 Mercury&#xff0c;水星最接近太阳&#xff0c;是太阳系中体积和质量最小的行星&#xff1b; 2、金星英文名 Venus&#xff0c;太阳系中第六大行星&#xff0c;太阳系中温度最高的行星&#xff0c;中国古代称之为太白或太白金星&#xff1b; 3、地球英文 E…...

如何使用 AWS CLI 创建和运行 EMR 集群

为初学者提供清晰易懂的教程 为初学者提供清晰易懂的教程 Apache Spark 和 AWS EMR 上的 Spark 集群 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 欢迎来到雲闪世界。Spark 被认为是“大数据丛林之王”&#xff0c;在数据分析、机器学习、流媒体和图形…...

HDFS写入数据的流程图

1.客户端向namenode发送请求&#xff0c;请示写入数据 2.namenode接受请求后&#xff0c;判断这个用户是否有写入权限&#xff0c;如果不具备直接报错&#xff1b;如果有写入权限&#xff0c;接着判断在要写入的目录下是否已经存在这个文件&#xff0c;如果存在&#xff0c;直…...

【Material-UI】使用指南:快速入门与核心功能解析

文章目录 一、快速入门1.1 安装和导入1.2 组件的独立性 二、全局设置2.1 响应式元标签2.2 CssBaseline2.3 默认字体 三、响应式设计3.1 Grid系统 四、最佳实践4.1 组件的一致性4.2 性能优化4.3 可访问性 五、总结 Material-UI是一个功能强大且灵活的React UI框架&#xff0c;为…...

【Java 第十三篇章】MyBatis 持久化框架的介绍

一、MyBatis 的历史 MyBatis 的前身是 iBATIS&#xff0c;它最早在 2001年由 Clinton Begin 发起。iBATIS 在早期就因其简单易用和灵活的特性受到了开发者的关注。 随着时间的推移&#xff0c;iBATIS 不断发展和改进。然而&#xff0c;在 2010年&#xff0c;iBATIS 项目团队决…...

AI新应用:概要设计与详细设计自动生成解决方案

近日&#xff0c;CoCode旗下的Co-Project智能项目管理平台V4.0.0升级发布&#xff0c;新增AI生成概要设计和AI生成详细设计功能&#xff0c;大大提高了设计的效率和质量。 CoCode旗下的Co-Project智能项目管理平台 一键智绘蓝图自现 平台设计板块新增概要设计功能&#xff0c;…...

【物联网设备端开发】使用QEMU模拟ESP硬件运行ESP-IDF

目录 一&#xff0c;开发环境搭建 1.1 安装ESP-IDF 1.2 安装vscode插件 1.3 在ESP-IDF插件配置ESP-IDF开发配置 1.4 下载IOTDeviceSDK 设备端开发代码 1.5 通过ESP-IDF插件编译好镜像 1.6 构建QEMU docker镜像 1.7 使用QEMU容器运行镜像 二&#xff0c;搭建QEMU环境步…...

#子传父父传子props和emits #封装的table #vue3

#子传父&父传子props和emits #封装的table #vue3 父组件&#xff1a;emits defineEmits props 子组件&#xff1a; 子组件 <template><el-table v-bind"$attrs" ref"innerTableRef" v-loading"loading" border :data"tabl…...

尚硅谷谷粒商城项目笔记——四、使用docker安装redis【电脑CPU:AMD】

四、使用docker安装redis 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 在解决了 Docker 安装的问题之…...

Java在无人驾驶方向的就业方向

在无人驾驶领域&#xff0c;Java作为一种主流编程语言&#xff0c;尽管不是最常见的选择&#xff08;例如&#xff0c;C和Python通常更受欢迎&#xff09;&#xff0c;但它仍然有很多应用场景和就业机会。以下是一些Java在无人驾驶方向的就业方向&#xff1a; 1. 后台服务开发 …...

机器学习中的关键距离度量及其应用

引言 在当今的数据驱动世界中&#xff0c;机器学习算法扮演着至关重要的角色&#xff0c;它们在图像分类、面部识别、在线内容审核、零售目录优化和推荐系统等多个领域发挥着重要作用。这些算法的核心在于它们能够识别和利用数据之间的相似性。而实现这一点的关键&#xff0c;…...

Redis中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

目录 1.什么是缓存雪崩1.1 导致雪崩的原因1.2 如何解决 2.什么是缓存穿透2.1 导致穿透的原因2.2 如何解决 3.什么是缓存预热3.1 如何解决 4.什么是缓存降级4.1 缓存降级的目的4.2 解决方案4.3 服务降级的目的 5.缓存更新 1.什么是缓存雪崩 就是存储在缓存里面的大量数据&#…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...