Vue2.x中的父子组件相互通信的实现方法
发布时间 - 2026-01-11 00:55:23 点击率:次业务场景:(这里指的是直接父子级关系的通信)

- |美女|(子组件)将消息发送给大群(父组件)
- 大群(父组件)收到|美女|发送的消息后再回个信息给|美女|(子组件)
父组件
template
<template>
<div>
<p>群消息girl:</p>
<div>
{{ somebody }} 说: 我 {{ age }} 了。
</div>
<hr>
<v-girl-group
:girls="aGirls"
:noticeGirl="noticeGirl"
@introduce="introduceSelf"></v-girl-group>
</div>
</template>
注意的点:
- 这里在父组件使用v-on来监听子组件上的自定义事件($emit的变化),一旦发生变化noticeGirl方法就会触发
<script>
import vGirlGroup from './GirlGroup'
export default {
name: 'girl',
components: {
vGirlGroup
},
data () {
return {
aGirls:[{
name:'小丽',
age:22
},{
name:'小美',
age:21
},{
name:'小荷',
age:24
}],
somebody:'',
age:'',
noticeGirl:''
}
},
methods: {
introduceSelf (opt) {
this.somebody = opt.name;
this.age = opt.age;
// 通知girl收到消息
this.noticeGirl = opt.name + ',已收到消息';
}
}
}
</script>
注意的点:
这里methods中定义的方法introduceSelf就是父组件接收到子组件发出的$emit的事件处理程序
子组件
template
<template>
<div>
<ul>
<li v-for="(value, index) in girls">
{{ index }} - {{ value.name }} - {{ value.age }}
<button @click="noticeGroup(value.name,value.age)">发送消息</button>
</li>
</ul>
<div>接收来自大群的消息:{{ noticeGirl }}</div>
</div>
</template>
script
<script>
export default {
name: 'girl-group',
props: {
girls: {
type: Array,
required: true
},
noticeGirl: {
type: String,
required: false
}
},
methods: {
noticeGroup (name, age) {
this.$emit('introduce',{
name: name,
age: age
})
}
}
}
</script>
注意的点:
子组件使用$emit发出自定义事件
相比于Vue1.x的变化:
$dispatch 和 $broadcast 已经被弃用
*官方推荐的通信方式
首选使用Vuex
使用事件总线:eventBus,允许组件自由交流
具体可见:https://cn.vuejs.org/v2/guide/migration.html#dispatch-和-broadcast-替换
结果
以上所述是小编给大家介绍的Vue2.x中的父子组件相互通信,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# vue父子组件通信
# vue2.0父子组件通信
# vue2.0父子组件及非父子组件之间的通信方法
# vue2.0父子组件间通信的实现方法
# 详解Vue2中组件间通信的解决全方案
# Vue2.0学习之详解Vue 组件及父子组件通信
# Vue2.0实现组件之间数据交互和通信操作示例
# Vue2中如何使用全局事件总线实现任意组件间通信
# 大群
# 自定义
# 小编
# 就会
# 在此
# 给大家
# 指的是
# 所述
# 给我留言
# 感谢大家
# 再回
# 小美
# 小丽
# 疑问请
# 有任何
# 发送消息
# 发送给
# noticeGirl
# girls
# introduce
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
移动端脚本框架Hammer.js
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何在建站之星绑定自定义域名?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel如何创建自定义Artisan命令?(代码示例)
香港服务器网站卡顿?如何解决网络延迟与负载问题?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
简历在线制作网站免费版,如何创建个人简历?
中国移动官方网站首页入口 中国移动官网网页登录
如何彻底卸载建站之星软件?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
如何快速重置建站主机并恢复默认配置?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel怎么实现验证码(Captcha)功能
微信小程序 scroll-view组件实现列表页实例代码
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
5种Android数据存储方式汇总
新三国志曹操传主线渭水交兵攻略
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
高端企业智能建站程序:SEO优化与响应式模板定制开发
iOS正则表达式验证手机号、邮箱、身份证号等
高端云建站费用究竟需要多少预算?
Bootstrap整体框架之CSS12栅格系统
利用JavaScript实现拖拽改变元素大小
海南网站制作公司有哪些,海口网是哪家的?
想要更高端的建设网站,这些原则一定要坚持!
如何用JavaScript实现文本编辑器_光标和选区怎么处理
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
html5的keygen标签为什么废弃_替代方案说明【解答】
太平洋网站制作公司,网络用语太平洋是什么意思?
Android利用动画实现背景逐渐变暗
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
高性能网站服务器配置指南:安全稳定与高效建站核心方案
在Oracle关闭情况下如何修改spfile的参数
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Linux系统命令中tree命令详解
js实现获取鼠标当前的位置
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何快速生成凡客建站的专业级图册?

