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 相关文章推荐
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
jQuery 操作input中radio的技巧
Jul 18 Javascript
基于原生js淡入淡出函数封装(兼容IE)
Oct 20 Javascript
浅谈js中的变量名和函数名重名
Feb 13 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 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
PHP递归调用的小技巧讲解
2013/02/19 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
php显示时间常用方法小结
2015/06/05 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
Python复制目录结构脚本代码分享
2015/03/06 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python with语句的原理与用法详解
2020/03/30 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
中学教师请假制度
2014/02/03 职场文书
会计专业自荐书
2014/07/08 职场文书
庐山导游词
2015/02/03 职场文书
审美与表现自我评价
2015/03/09 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
捐书活动倡议书
2015/04/27 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
Python中re模块的元字符使用小结
2022/04/07 Python