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 相关文章推荐
javascript+css 网页每次加载不同样式的实现方法
Dec 27 Javascript
跟着Jquery API学Jquery之一 选择器
Apr 07 Javascript
JQuery 选择器 xpath 语法应用
May 13 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
js生成随机数(指定范围)的实例代码
Jul 10 Javascript
JavaScript 函数节流详解及方法总结
Feb 09 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
node中的session的具体使用
Sep 14 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 Javascript
JS如何生成随机验证码
Mar 02 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
MYSQL环境变量设置方法
2007/01/15 PHP
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php中strtotime函数用法详解
2014/11/15 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
详解php用static方法的原因
2018/09/12 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
vue 自定义 select内置组件
2018/04/10 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
python的range和linspace使用详解
2019/11/27 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
关于抽烟的检讨书
2014/02/25 职场文书
公司总经理任命书
2014/06/05 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
庆七一宣传标语
2014/10/08 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
通知函的格式
2015/04/27 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python