Vue组件的几种通信方式
这里写目录标题
- Vue组件的几种通信(数据传递)方式
- 非父子组件间通信(Bus事件总线)
- 介绍
- 实例
- 非父子通信-provide&inject
- 1.作用
- 2.场景
- 3.语法
- 4.注意
- 父子组件间的通信
- 固定props属性名(v-model)
- 介绍
- 实例
- 不固定属性名(.sync)
- 介绍
- 实例
Vue组件的几种通信(数据传递)方式
非父子组件间通信(Bus事件总线)
介绍
编写一个js文件来作为 中介, 接收消息的一方,通过监听 o n ( ) 方法进行接收,消息的发送方通过 on()方法进行接收,消息的发送方通过 on()方法进行接收,消息的发送方通过emit()向总线发送消息,依次来达到通信的目的,发布订阅模式,消息的接收方可以有多个。
实例
-
创建一个都能访问的事件总线 (空Vue实例)
import Vue from 'vue' const Bus = new Vue() export default Bus -
A组件(接受方),监听Bus的 $on事件
import Bus from '../utils/EventBus'created () {Bus.$on('sendMsg', (msg) => {this.msg = msg}) } -
B组件(发送方),触发Bus的$emit事件
import Bus from '../utils/EventBus'Bus.$emit('sendMsg', '这是一个消息')
非父子通信-provide&inject
1.作用
跨层级共享数据
2.场景

3.语法
- 父组件 provide提供数据
export default {provide () {return {// 普通类型【非响应式】color: this.color, // 复杂类型【响应式】userInfo: this.userInfo, }}
}
2.子/孙组件 inject获取数据
export default {inject: ['color','userInfo'],created () {console.log(this.color, this.userInfo)}
}
4.注意
- provide提供的简单类型的数据不是响应式的,复杂类型数据是响应式。(推荐提供复杂类型数据)
- 子/孙组件通过inject获取的数据,不能在自身组件内修改
父子组件间的通信
固定props属性名(v-model)
介绍
利用v-model的原理进行父子组件间的通信,v-model可以进行拆分:①:value ② @input 事件 要求在子组件中props属性中的属性名必须为 value: $emit()中的事件名必须为input
实例
子组件
<select :value="value" @change="handleChange">...</select>
props: {value: String
},
methods: {handleChange (e) {this.$emit('input', e.target.value)}
}
父组件
<BaseSelect v-model="selectId"></BaseSelect>
不固定属性名(.sync)
介绍
主要是为了对v-model中的情况做一些补充,表单数据在传输时可以使用value这些比较合适,但是有些不合适,例如:下拉列表等,好处是,不用固定value属性名 可以进行自定义 , 在父组件中的属性后面加.sync ,在子组件中的$emit()中事件名使用 @update:属性名
实例
父组件
//.sync写法
<BaseDialog :visible.sync="isShow" />
--------------------------------------
//完整写法
<BaseDialog :visible="isShow" @update:visible="isShow = $event"
/>
子组件
props: {visible: Boolean
},this.$emit('update:visible', false)
相关文章:
Vue组件的几种通信方式
这里写目录标题 Vue组件的几种通信(数据传递)方式非父子组件间通信(Bus事件总线)介绍实例 非父子通信-provide&inject1.作用2.场景3.语法4.注意 父子组件间的通信固定props属性名(v-model)介绍实例 不固…...
golang panic关键词执行原理与代码分析
使用的go版本为 go1.21.2 首先我们写一个简单的panic调度与捕获代码 package mainfunc main() {defer func() {recover()}()panic("panic test") }通过go build -gcflags -S main.go获取到对应的汇编代码 可以看到当我们调度panic时,Go的编译器会将这段…...
Error running Tomcat8: Address localhost:1099 is already in use 错误解决
摘要: 有时候运行web项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in use 的错误,导致web项目无法运行。这篇 blog 介绍了解决办法。 有时候运行web项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in …...
android studio如何给安卓虚拟机发送短信
首先,cd到指定路径 默认情况下,Android SDK通常安装在以下位置: Windows:C:\Users\YourUsername\AppData\Local\Android\Sdk\platform-toolsmacOS:/Users/YourUsername/Library/Android/sdk/platform-toolsLinux&…...
立体仓库PLC控制系统子站诊断功能块
// //获取profinet网络已组态站信息 // //MODE:0自动辨识是获取组态信息还是错误信息 //MODE:1获取IO 设备从站已组态 //MODE:2获取IO 设备 从站故障 //MODE:3获取IO 设备 从站已禁用 //MODE:4获取IO 设备 从站存在 //MODE:5获取IO 设备 从站出现问题 // //站点状态字节位含义 …...
NFT Insider115:The Sandbox开设元宇宙Diorama快闪店,YGG Web3 游戏峰会已开幕
引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…...
【Redis篇】简述Java中操作Redis的方法
文章目录 🎄简述Jedis🎄Jedis优点🍔使用Jedis连接Redis⭐进行测试🎈进行测试 Redis(Remote Dictionary Server)是一种流行的高性能内存数据库,广泛应用于各种应用程序和系统中。作为Java开发人员…...
深度解读英伟达新一轮对华特供芯片H20、L20、L2的定位
大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 因为一直从事 AI 工…...
一起学docker系列之九docker运行mysql 碰到的各种坑及解决方法
目录 前言1 Docker 运行mysql命令2 坑一:无法读取/etc/mysql/conf.d目录的问题3 坑二:/tmp/ibnr0mis 文件无法创建/写入的问题4 坑三:Navicat 连接错误(1045-access denied)5 坑四:MySQL 登录失败问题结语 …...
利用Nginx与php处理方式不同绕过Nginx_host实现SQL注入
目录 首先需要搭建环境 nginxphpmysql环境: 搭建网站 FILTER_VALIDATE_EMAIL 绕过 方法1:冒号号分割host字段 方法2:冒号号分割host字段 方法3:SNI扩展绕过 首先需要搭建环境 nginxphpmysql环境: php安装包&a…...
分割list 批量插入数据指定条数数据
一、代码层面切割好list,然后插入 // package org.apache.commons.collections4; 先将list切成1000条一份 List<List<DeptDO>> p1 ListUtils.partition(deptList, 1000); for (List<DeptDO> deptDOS : p1) { // 1000条一次批量插入systemDeptMa…...
Arduino库之 LedControl 库说明文档
LedControl 库最初是为基于 8 位 AVR 处理器的 Arduino 板编写的。用于通过MAX7219芯片控制LED矩阵和7段数码管。但由于该代码不使用处理器的任何复杂的内部功能,因此具有高度可移植性,并且应该在任何支持 和 功能的 Arduino(类似)…...
Hadoop学习总结(MapReduce的数据去重)
现在假设有两个数据文件 file1.txtfile2.txt2018-3-1 a 2018-3-2 b 2018-3-3 c 2018-3-4 d 2018-3-5 a 2018-3-6 b 2018-3-7 c 2018-3-3 c2018-3-1 b 2018-3-2 a 2018-3-3 b 2018-3-4 d 2018-3-5 a 2018-3-6 c 2018-3-7 d 2018-3-3 c 上述文件 file1.txt 本身包含重复数据&…...
ctfshow sql
180 过滤%23 %23被过滤,没办法注释了,还可以用’1’1来闭合后边。 或者使用--%0c-- 1%0corder%0cby%0c3--%0c--1%0cunion%0cselect%0c1,2,database()--%0c--1%0cunion%0cselect%0c1,2,table_name%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_…...
Java实现求最大值
1 问题 接收用户输入的3个整数,如何将最大值作为结果输出。 2 方法 采用“截图文字代码”的方式描述。 引入输入包调用main()函数,提示并接收用户输入的3个整数,并交由变量a b c来保存。对接收的3个数据进行比较,先比较a和b&#…...
NX二次开发UF_CURVE_ask_curve_inflections 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_inflections Defined in: uf_curve.h int UF_CURVE_ask_curve_inflections(tag_t curve_eid, double proj_matrx [ 9 ] , double range [ 2 ] , int * num_infpt…...
一个基于RedisTemplate静态工具类
每次是用RedisTemplate的时候都需要进行自动注入实在是太麻烦了,于是找到一个讨巧的办法。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.…...
【计算机网络笔记】数据链路层——差错编码
系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...
js生成pdf并自动上传
1.生成pdf前要让js选中生成pdf部分的dom <div id"printPageFirst"> pdf内容区 </div> 2.使用两个插件,import到项目里,然后是获取dom进行生成pdf操作 import html2canvas from html2canvas import JsPDF from jspdf function cr…...
高品质MP3音频解码语音芯片WT2003Hx的特征优势与应用场景
在现代化科技快速发展的时代,高品质音频语音芯片在各个领域的应用越来越广泛。唯创知音推出的高品质MP3音频语音芯片WT2003Hx,凭借其出色的特性与优势,赢得了市场的广泛认可。本文将详细介绍WT2003Hx的特征优势以及其在各个领域的应用场景。 …...
阿里Java面试速成指南,程序员2026突击必备!
2026已经过半了,但是大家就业压力却没有缓解多少。很多粉丝后台留言,Java程序员面临的竞争太激烈了……我自己也有实感,多年身处一线互联网公司,虽没有直面过求职跳槽的残酷,但经常担任技术面试考官,对程序…...
6本必读集成学习书籍:从理论到实战全解析
1. 集成学习入门:为什么这6本书值得放在你的书架上?集成学习作为机器学习领域的重要分支,已经彻底改变了我们构建预测模型的方式。记得我第一次在Kaggle比赛中尝试使用随机森林时,那种"原来预测可以这么准"的震撼感至今…...
从‘调参噩梦’到‘一键收敛’:全局快速Terminal滑模控制参数整定心得分享
从‘调参噩梦’到‘一键收敛’:全局快速Terminal滑模控制参数整定实战指南 滑模控制工程师的日常,往往始于理论推导的兴奋,终于参数调试的崩溃。当你在Simulink里反复拖动α、β、p、q的滑块,看着仿真曲线在发散与抖振之间反复横跳…...
别再手动调参了!用Simulink S函数实现递推最小二乘(RLS)实时系统辨识(附模型下载)
工程实战:用Simulink S函数实现递推最小二乘系统辨识 在工业控制领域,系统辨识就像给未知对象"把脉"——我们需要通过输入输出数据反推数学模型。传统手动调参不仅效率低下,面对时变系统更是力不从心。本文将带你用Simulink S函数打…...
斯坦福邱肖杰:预测性虚拟胚胎
摘要 整合单细胞数据、空间数据与人工智能技术的预测性虚拟胚胎系统,为跨尺度模拟哺乳动物胚胎发育提供了可行路径,有望深化人类对胚胎发育与先天性疾病的基础认知。 尽管发育生物学已取得数10年进展,构建胚胎发育的整合式、可预测模型仍是…...
生成引擎优化(GEO)为内容创作引入新视角与用户体验提升策略
生成引擎优化(GEO)为内容创作提供了新的思路,着眼于以用户需求为中心的创作方式。通过深入理解目标受众的行为和偏好,创作者能够定制更具个性化的内容,提高互动性和用户参与度。GEO并非单纯依赖关键词排名,…...
告别卡顿!在IMX6ULL上用LVGL 9.0+FFmpeg+OpenCV打造丝滑的本地监控GUI(附源码思路)
告别卡顿!在IMX6ULL上用LVGL 9.0FFmpegOpenCV打造丝滑的本地监控GUI 在嵌入式开发中,流畅的图形界面往往被视为奢侈的需求——尤其是当硬件平台采用像IMX6ULL这样的中低端处理器时。但现实情况是,越来越多的智能设备需要同时处理视频流和复杂…...
从波束形成到图像重构:深度解析合成孔径、MIMO与相控阵雷达的技术内核
1. 雷达技术的三大支柱:从基础概念说起 第一次接触合成孔径雷达、MIMO雷达和相控阵雷达时,很多人都会被这些专业术语绕晕。其实这三种技术都源于同一个核心问题:如何在有限的物理尺寸下,获得更好的雷达探测性能。这就好比我们用手…...
VisionMaster多相机定位实战:手把手教你搞定800mm大物料抓取(附完整标定流程)
VisionMaster多相机定位实战:800mm大物料抓取全流程解析 在工业自动化领域,大尺寸物料的高精度定位一直是视觉工程师面临的棘手挑战。当物料尺寸超过单相机视野范围时,如何实现毫米级定位精度?本文将基于800600mm面板物料抓取场景…...
终极指南:如何用免费开源工具完全替代Dell AWCC散热控制
终极指南:如何用免费开源工具完全替代Dell AWCC散热控制 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 如果你正在使用Dell G15游戏本,…...
