Vue2.x中的父子组件相互通信的实现方法


Posted in Javascript onMay 02, 2017

业务场景:(这里指的是直接父子级关系的通信)

  • 美女(子组件)将消息发送给大群(父组件)
  • 大群(父组件)收到美女发送的消息后再回个信息给美女(子组件)

父组件

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中的父子组件相互通信的实现方法

Vue2.x中的父子组件相互通信的实现方法

Vue2.x中的父子组件相互通信的实现方法

以上所述是小编给大家介绍的Vue2.x中的父子组件相互通信,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在JS中如何调用JSP中的变量
Jan 22 Javascript
jQuery提交多个表单的小技巧
Jul 27 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
JavaScript制作淘宝星级评分效果的思路
Jun 23 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
Jan 13 Javascript
原生JS实现自定义滚动条效果
Oct 27 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 Javascript
微信小程序tabBar设置实例解析
Nov 14 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
May 02 #Javascript
jQuery树插件zTree使用方法详解
May 02 #jQuery
JavaScript数据结构学习之数组、栈与队列
May 02 #Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 #Javascript
详解webpack+es6+angular1.x项目构建
May 02 #Javascript
jQuery Tree Multiselect使用详解
May 02 #jQuery
bootstrap的常用组件和栅格式布局详解
May 02 #Javascript
You might like
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Flask之请求钩子的实现
2018/12/23 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
资源工程专业毕业生求职信
2014/02/27 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
创优争先心得体会
2014/09/11 职场文书
小学中等生评语
2014/12/29 职场文书
地震慰问信
2015/02/14 职场文书
投诉信格式范文
2015/07/02 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB