vue2.0父子组件及非父子组件之间的通信方法

发布时间 - 2026-01-10 22:41:35    点击率:

1.父组件传递数据给子组件

父组件数据如何传递给子组件呢?可以通过props属性来实现

父组件:

<parent>
  <child :child-msg="msg"></child>//这里必须要用 - 代替驼峰
</parent>
data(){
  return {
    msg: [1,2,3]
  };
}

子组件通过props来接收数据:

方式1:

props: ['childMsg']

方式2 :

props: {
  childMsg: Array //这样可以指定传入的类型,如果类型不对,会警告
}

方式3:

props: {
  childMsg: {
    type: Array,
    default: [0,0,0] //这样可以指定默认的值
  }
}

这样呢,就实现了父组件向子组件传递数据.

2.子组件与父组件通信

那么,如果子组件想要改变数据呢?这在vue中是不允许的,因为vue只允许单向数据传递,这时候我们可以通过触发事件来通知父组件改变数据,从而达到改变子组件数据的目的.

子组件:

<template>
  <div @click="up"></div>
</template>
methods: {
  up() {
    this.$emit('upup','hehe'); //主动触发upup方法,'hehe'为向父组件传递的数据
  }
}

父组件:

<div>
  <child @upup="change" :msg="msg"></child> //监听子组件触发的upup事件,然后调用change方法
</div>
methods: {
  change(msg) {
    this.msg = msg;
  }
}

3.非父子组件通信

如果2个组件不是父子组件那么如何通信呢?这时可以通过eventHub来实现通信.
所谓eventHub就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件.

let Hub = new Vue(); //创建事件中心

组件1触发:

<div @click="eve"></div>
methods: {
  eve() {
    Hub.$emit('change','hehe'); //Hub触发事件
  }
}

组件2接收:

<div></div>
created() {
  Hub.$on('change', () => { //Hub接收事件
    this.msg = 'hehe';
  });
}

这样就实现了非父子组件之间的通信了.原理就是把Hub当作一个中转站!

以上所述是小编给大家介绍的vue2.0父子组件及非父子组件之间的通信方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# vue2.0  # 父子组件  # vue  # 非父子组件通信  # Vue2.x中的父子组件相互通信的实现方法  # vue2.0父子组件间通信的实现方法  # 详解Vue2中组件间通信的解决全方案  # Vue2.0学习之详解Vue 组件及父子组件通信  # Vue2.0实现组件之间数据交互和通信操作示例  # Vue2中如何使用全局事件总线实现任意组件间通信  # 可以通过  # 来实现  # 小编  # 实现了  # 在此  # 可以用  # 我们可以  # 给大家  # 要用  # 这在  # 所述  # 创建一个  # 它来  # 给我留言  # 感谢大家  # 只允许  # 信了  # 及非  # 疑问请  # 有任何 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  如何在Windows环境下新建FTP站点并设置权限?  大同网页,大同瑞慈医院官网?  太平洋网站制作公司,网络用语太平洋是什么意思?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel distinct去重查询_Laravel Eloquent去重方法  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何挑选最适合建站的高性能VPS主机?  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Android自定义listview布局实现上拉加载下拉刷新功能  七夕网站制作视频,七夕大促活动怎么报名?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  网站页面设计需要考虑到这些问题  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  手机网站制作与建设方案,手机网站如何建设?  Laravel中的Facade(门面)到底是什么原理  MySQL查询结果复制到新表的方法(更新、插入)  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  js实现获取鼠标当前的位置  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  简单实现Android文件上传  简单实现Android验证码  PHP正则匹配日期和时间(时间戳转换)的实例代码  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  香港网站服务器数量如何影响SEO优化效果?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何确认建站备案号应放置的具体位置?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  浅述节点的创建及常见功能的实现  Linux系统命令中screen命令详解  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  新三国志曹操传主线渭水交兵攻略  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在IIS7中新建站点?详细步骤解析  如何快速生成橙子建站落地页链接?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  如何快速搭建高效可靠的建站解决方案?