vue父子组件通信,兄弟组件通信
目录
一、父子组件通信
1、子组件通过 props 获取父组件变量和父组件调用子组件中的方法(这两个都是父传子的思想)
a:子组件通过 props 获取父组件变量
b:父组件调用子组件中的方法
2、父组件通过ref获取子组件变量和子组件调用父组件的方法(这两个都是子传父的思想)
a:父组件通过ref获取子组件变量
b:子组件调用父组件的方法
3、总结
二、兄弟组件通信
1、通过 bus 进行兄弟组件通信
一、父子组件通信
1、子组件通过 props 获取父组件变量和父组件调用子组件中的方法(这两个都是父传子的思想)
a:子组件通过 props 获取父组件变量
方法关键字:props 步骤(2步):
在父组件引用子组件标签中定义接受变量名并传值 。 公式::子组件接受变量名=“父组件要传的变量名” 如 :nowPriceF="nowPrice"
在子组件data()方法平级定义props对象接收变量。 公式:props: { } 如:props: {nowPriceF: Number}
// 父组件
<Add :nowPriceF='nowPrice'></Add>
// 子组件
export default {props: {nowPriceF: Number},data() {}
}
b:父组件调用子组件中的方法
方法关键字:ref、$refs 步骤(3步):
在父组件引用子组件标签中定义ref,利用ref获取子组件变量。 公式:ref=“对子组件定义唯一ref值”,如 :ref="addChild" 在父组件中直接调用子组件中的方法,可传参数。子组件获取父组件变量也可以用这个方法。
公式:this.r e f s . a d d C h i l d . 子 组 件 中 方 法 名 ∗ ∗ 如 : ∗ ∗ t h is . refs.addChild.子组件中方法名** 如:**this.refs.addChild.子组件中方法名∗∗如:∗∗this.refs.addChild.calculateWithdrawal(row) 在子组件中执行调用的方法,可获取参数。 公式:定义普通方法一样,如:calculateWithdrawal(row){ }
/父组件
<Add ref="addChild" :nowPriceF='nowPrice'></Add>
//在所用的方法获取,addForm:子组件中变量名
this.$refs.addChild.calculateWithdrawal(row)
calculateWithdrawal(row){console.log('父组件中调用了这个方法并传递了参数',row)
}
2、父组件通过ref获取子组件变量和子组件调用父组件的方法(这两个都是子传父的思想)
a:父组件通过ref获取子组件变量
方法关键字:ref 、$refs 步骤(2步):
在父组件引用子组件标签中定义ref,利用ref获取子组件变量。 公式:ref=“对子组件定义唯一ref值” 如 :ref="addChild"
在父组件中直接获取子组件中的变量。 公式:this.$refs.addChild.子组件中变量名,如:this.$refs.addChild.addForm
//父组件
<Add ref="addChild" :nowPriceF='nowPrice'></Add>
//在所用的方法获取,addForm:子组件中变量名
this.$refs.addChild.addForm
b:子组件调用父组件的方法
方法关键字:$emit 步骤(2步):
在子组件中通过e m i t 调 用 父 组 件 中 定 义 的 方 法 , 将 变 量 以 参 数 带 过 去 。 公 式 : 在子组件中触发的函数里面写 t h i s . emit调用父组件中定义的方法,将变量以参数带过去。 公式:
this.emit调用父组件中定义的方法,将变量以参数带过去。公式:在子组件中触发的函数里面写this.emit(‘传递到父组件的方法名’,需要传递的变量)”,如 :this.$emit(‘lookPhotos’,file.url)在父组件引用子组件标签中获取子组件定义的方法并获得参数。 公式:@子组件定义传递到父组件的方法名="父组件获取参数变量的方法($event)",如:@lookPhotos="lookPhotosUrl($event)"
//子组件
handlePictureCardPreview(file) {this.$emit('lookPhotos',file.url)//lookPhotos 定义传递到父元素的方法名//file.url 父元素要获取的东西
},
//父组件
<Add ref="addChild" @lookPhotos="lookPhotosUrl($event)" :nowPriceF='nowPrice'></Add>
//在methods: {}中获取
lookPhotosUrl(url){console.log('父元素需要的东西',url)
},
3、总结
a:父组件通过ref调用/获取子组件内参数/方法
b:子组件通过emit调用父组件方法
c:子组件通过prop获取父组件变量
二、兄弟组件通信
1、通过 bus 进行兄弟组件通信
步骤:
a 在 main.js 文件内 将 new Vue() 挂载至 vue 原型上
b 在 接受 通信的组件内 使用 this.$bus.$on() 进行初始化
c 在 发起通信 组件内 使用 this.$bus.$emit('方法名', 参数1, 参数2...)
// mian.jsimport Vue from 'vue'
import App from './App'
import router from './router'
//重要Vue.prototype.$bus = new Vue(); // 设置 挂载至 vue 的原型上new Vue({el: '#app',router,components: { App },template: '<App/>'
})
父组件
<template><div class="box"><div>我是父组件</div><div style="display: flex"><!-- 子组件 1 (-_- 我和 子组件2 是同级关系 所以是兄弟组件 -_- )--><baby1 class="border"></baby1><!-- 子组件 2 (-_- 我和 子组件1 是同级关系 所以是兄弟组件 -_- )--><baby2 class="border"></baby2> </div></div>
</template><script>
import baby1 from '@/components/html/baby1.vue'
import baby2 from '@/components/html/baby2.vue'export default {name: 'home',components:{baby1,baby2}
}
</script>
子组件1
<template><div class="box"><div>我是子组件1</div><input v-model="value" style="width: 100%"><button @click="handleFetchHomeFunction">将值 更新至 子组件2</button></div>
</template><script>export default {name: 'baby1',data(){return{value: ''}},methods: {// 调用 兄弟组件 方法handleFetchHomeFunction(){this.$bus.$emit('valueUpdate', this.value)}}
}
</script>
子组件2
<template><div class="box"><div>我是子组件2</div><input v-model="value" style="width: 100%"></div>
</template><script>export default {name: 'baby1',data(){return{value: ''}},mounted(){// 接收事件this.$bus.$on('valueUpdate', (value)=>{this.value = value;})},
}
</script>
相关文章:
vue父子组件通信,兄弟组件通信
目录 一、父子组件通信 1、子组件通过 props 获取父组件变量和父组件调用子组件中的方法(这两个都是父传子的思想) a:子组件通过 props 获取父组件变量 b:父组件调用子组件中的方法 2、父组件通过ref获取子组件变量和子组件调用父组件的方法(这两个都是子传父的…...
大数据技术之Hadoop集群配置
作者简介:大家好我是小唐同学(๑><๑),好久不见,为梦想而努力的小唐又回来了,让我们一起加油!!! 个人主页:小唐同学(๑><๑)的博客主页 目前…...
MicroBlaze系列教程(7):AXI_SPI的使用(M25P16)
文章目录 AXI_SPI简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第7篇文章。 AXI_SPI简介 Xilinx AXI-SPI IP共有两个:一个是标准的AXI_SPI,即4线制SPI,CS、SCLK、MOSI和MISO,另一个是AXI_Quad SPI,支持配置成标准SP…...
使用Python通过拉马努金公式快速求π
使用Python通过拉马努金公式快速求π 一、前言 π是一个数学常数,定义为:圆的周长与直径的比值。 π是一个无理数,也是一个超越数,它的小数部分无限不循环。 π可以用来精确计算圆周长、圆面积、球体积等几何形状的关键值。 有关…...
第六章 使用系统类提供国家语言支持 - 创建自定义语言环境
文章目录第六章 使用系统类提供国家语言支持 - 创建自定义语言环境创建自定义语言环境第六章 使用系统类提供国家语言支持 - 创建自定义语言环境 创建自定义语言环境 此示例将提供一个模板,用于使用自定义表创建自定义语言环境。自定义表将在 EBCDIC(美…...
「题解」解决二进制数中1的个数
🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️🔥专栏系列:线性代数,C初学者入门训练 🔥座右铭:“不要等到什么都没有了,才下定决心去做” 🚀🚀🚀大家觉不错…...
泛型详解.
1 泛型的引入 问题:我们之前实现过的顺序表,只能保存 int 类型的元素,如果现在需要保存 指向 Person 类型对象的引用的顺序表,请问应该如何解决?如果又需要保存指向 Book 对象类型的引用呢? 之前写的顺序表…...
Vue 3.0 响应性 深入响应性原理 【Vue3 从零开始】
现在是时候深入了!Vue 最独特的特性之一,是其非侵入性的响应性系统。数据模型是被代理的 JavaScript 对象。而当你修改它们时,视图会进行更新。这让状态管理非常简单直观,不过理解其工作原理同样重要,这样你可以避开一…...
升级 vue3 常见问题总汇
Ⅰ、前言 虽然 vue3 是没有删除 vue2 的 选项式 API , 但是我们升级vue3 还是需要修改很多问题的下面来看看我们升级常见的一些问题 👇 文章目录Ⅰ、前言Ⅱ、解决兼容问题1、路由的创建方式2、路由的方法变化3、升级 vuex 到 4.x4、作用域 插槽语法修改…...
汽车 Automotive > T-BOX GNSS高精定位测试相关知识
参考:https://en.wikipedia.org/wiki/Global_Positioning_SystemGPS和GNSS的关系GPS(Global Positioning System),全球定位系统是美国军民两用的导航定位卫星系统,GPS包含双频信号,频点L1、L2和L5GNSS&…...
大数据面试核心101问【大厂超级喜欢这些题】
之前出过《史上最全的大数据开发八股文》这篇文章,同学们都觉得还不错,但是有些同学觉得那个背起来还是有些吃力,于是我再次回顾了自己之前面试所有大厂的一些面试题以及牛客上面的一些面经,然后总结了频率问的最高的101问&#x…...
代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II
代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II121. 买卖股票的最佳时机122.买卖股票的最佳时机II121. 买卖股票的最佳时机 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支…...
RAD 11.3 delphi和C++改进后新增、废弃及优化的功能
RAD 11.3 delphi和C改进后新增和废弃的功能 目录 RAD 11.3 delphi和C改进后新增和废弃的功能 一、版本RAD 11.3 delphi和C改进后新增功能 1、官方视频位置: 2、官方文档的链接位置: 二、版本RAD 11.3 delphi和C改进后废弃的功能 2.1、编译器不再使…...
【C++】引用
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、引用1.1 引用概念1.2 引用特性…...
LPNet for Image Derain
Lightweight Pyramid Networks for Image Deraining前置知识高斯-拉普拉斯金字塔图像中的高频信息和低频信息为什么高斯-拉普拉斯金字塔可以实现去雨?可能性分析网络结构整体结构:子网结构:递归块结构:后续补充代码 前置知识 这…...
【NLP相关】基于现有的预训练模型使用领域语料二次预训练
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
使用git进行项目管理--git使用及其常用命令
使用git进行项目管理 文章目录 使用git进行项目管理git使用1.添加用户名字2.添加用户邮箱3.git初始化4.add5.commit6.添加到gitee仓库7.推送到gitee8.切换版本git常用命令git add把指定的文件添加到暂存区中添加所有修改、已删除的文件到暂存区中添加所有修改、已删除、新增的文…...
Mybatis_CRUD使用
目录1 Mybatis简介环境说明:预备知识:1.1 定义1.2 持久化为什么需要持久化服务呢?1.3 持久层1.4 为什么需要Mybatis2 依赖配置3 CRUDnamespaceselect (查询用户数据)※传值方式:于方法中传值使用Map传值insert (插入用…...
JVM的过程内分析和过程间分析有什么区别?
问: 目前所有常见的Java虚拟机对过程间分析的支持都相 当有限,要么借助大规模的方法内联来打通方法间的隔阂,以过程内分析(Intra-Procedural Analysis, 只考虑过程内部语句,不考虑过程调用的分析ÿ…...
LearnDash测验报告如何帮助改进您的课程
某一个场景。Pennywell 大学有一门课程“Introduction to Linear Algebra”。上学期进行了两次测验。20% 的学生在第一次测验中不及格,而 80% 在第二次测验中不及格。在进一步评估中,观察到第一次测验不及格的学生在第二次测验中也不及格。在第二次测验中…...
告别默认丑界面!手把手教你用.vimrc文件配置出高颜值、高效率的Gvim工作环境
告别默认丑界面!手把手教你用.vimrc文件配置出高颜值、高效率的Gvim工作环境 第一次打开Gvim时,那个灰蒙蒙的界面和密密麻麻的代码是不是让你瞬间失去了继续使用的欲望?别急着关掉它——通过简单的.vimrc配置,你完全可以把这款经典…...
【TypeScript】 在业务项目中的类型治理
TypeScript 在业务项目中的类型治理:重点不是写类型,而是少挖坑 一、很多团队用了 TypeScript,为什么还是经常出问题 很多项目上了 TypeScript 之后,表面看起来挺规范: 接口有类型组件参数有类型函数入参也有类型 但实…...
Qwen3-ForcedAligner-0.6B模型量化实战:减小部署体积
Qwen3-ForcedAligner-0.6B模型量化实战:减小部署体积 语音处理中的强制对齐技术,能够精确匹配文本与语音的时间戳,是语音识别、字幕生成等应用的关键环节。Qwen3-ForcedAligner-0.6B作为一款基于大语言模型的强制对齐工具,支持11种…...
造相-Z-Image-Turbo 在运维监控中的创意应用:生成系统状态拟人化报告图
造相-Z-Image-Turbo 在运维监控中的创意应用:生成系统状态拟人化报告图 每次打开监控大屏,面对满屏跳动的数字和密密麻麻的曲线图,你是不是也感到一阵视觉疲劳?CPU 80%、内存占用率65%、网络丢包0.1%……这些冰冷的指标虽然精确&…...
Qwen-Image-Edit保姆级教程:3步搭建本地修图神器,隐私安全有保障
Qwen-Image-Edit保姆级教程:3步搭建本地修图神器,隐私安全有保障 想要一款既能保护隐私又能快速修图的AI工具?今天给大家介绍基于阿里通义千问Qwen-Image-Edit模型的本地化修图方案,无需联网、数据不出本地,3步就能搭…...
【GD32F407】内部Flash高效读写策略与实战优化
1. GD32F407内部Flash特性解析 GD32F407作为国产MCU中的明星产品,其内部Flash设计颇具特色。第一次拿到芯片手册时,我发现它的存储架构比想象中复杂得多。最让我印象深刻的是前512KB空间的零等待特性——这意味着在此范围内的代码执行速度堪比RAM&#x…...
5分钟上手Velocity动态主题动画:让界面动效随用户偏好智能切换
5分钟上手Velocity动态主题动画:让界面动效随用户偏好智能切换 【免费下载链接】velocity Accelerated JavaScript animation. 项目地址: https://gitcode.com/gh_mirrors/ve/velocity Velocity是一款高性能的JavaScript动画库,专注于提供流畅、高…...
AI绘画联动:OpenClaw调用Qwen3-32B生成Stable Diffusion提示词
AI绘画联动:OpenClaw调用Qwen3-32B生成Stable Diffusion提示词 1. 当AI助手遇上AI绘画:我的自动化创作实验 去年第一次接触Stable Diffusion时,我就被它的创作潜力震撼了。但很快发现一个问题:要得到理想的画面,往往…...
OpenClaw个人财务助手:Qwen3-14B分析消费记录生成报表
OpenClaw个人财务助手:Qwen3-14B分析消费记录生成报表 1. 为什么需要AI财务助手 上个月整理支付宝账单时,我盯着密密麻麻的消费记录发了半小时呆。餐饮、购物、交通的金额混在一起,根本分不清钱到底花在哪里。手动分类300多条记录后&#x…...
OpenClaw+千问3.5-9B:个性化新闻摘要与推送系统
OpenClaw千问3.5-9B:个性化新闻摘要与推送系统 1. 为什么需要个人新闻助手? 每天早上打开新闻App,总会被各种无关信息轰炸——明星八卦、标题党、重复推送...作为一个技术从业者,我真正需要的是垂直领域的高质量内容。尝试过RSS…...
