Vue2.0实现组件之间数据交互和通信操作示例


Posted in Javascript onMay 16, 2019

本文实例讲述了Vue2.0实现组件之间数据交互和通信操作。分享给大家供大家参考,具体如下:

Vue2.0组件之间数据交互和通信。

Vue2.0废弃了dispatch 和 $broadcast,如何在实现组件之间的数据交互和通信?下面是一个简单的demo解决了这个问题。

事件中心(evengtHub.js):

//定义事件中心,在模板通信是使用。
import Vue from 'vue';
export default {
  bus: new Vue()
}

父组件:

<div>
  <!--msg必须跟子组件的msg参数一致,@msg是子组件向父组件传参数的接口,:msg是父组件向子组件传参数的接口-->
  <child1 @msg='getMsg' :msg1='msg1'></child1>
  <child1 ref='child2'></child2>
<div>
<script>
import bus form 'eventHub'
  componets: {
    child1: require('child1'),
    child2: require('child2');
  },
  data() {
    return: {
      msg1: 'hello'
    }
  },
  methods: {
    getMsg(el) {
       this.$refs.child2.drop(el);
       //父组件调用child2组件的drop方法,传递el参数,子组件和子组件之间的通信
    }
  }
</script>

子组件1

<template>
  <div class='child1' @click='sendMsg'>{{msg}}<div>
</template>
<script>
import bus form 'eventHub';
//props属性用于子组件接收父组件传过来的参数
  props: {
    msg1 :String
  },
  methods: {
    this.bus.$emit('add', event.target);//此方法可以通过子组件1在任意组件内响应点击事件。
    this.$emit('msg', event.target);//发送数据给父组件,这个方法的'msg'参数必须和父组件的@msg保持一致。
  }
</script>

子组件2

<template>
  <div class='child2'><div>
</template>
<script>
import bus form 'eventHub'
methods: {
  drop(el) {
    console.log(el);//打印出child1的div元素
  }
},
created() {
  this.bus.$on('add',() => {
    console.log('响应child1的点击事件');
  })
}
</script>

上面的例子中包括父子组件之间互相传参数和组件之间的通信,更好的组件通信事件请使用vuex。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
浅谈javascript对象模型和function对象
Dec 26 Javascript
javascript中$(function() {});写与不写有哪些区别
Aug 10 Javascript
Nginx上传文件全部缓存解决方案
Aug 17 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
vue父组件向子组件传递多个数据的实例
Mar 01 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 #Javascript
JS左右无缝轮播功能完整实例
May 16 #Javascript
Node.js Windows Binary二进制文件安装方法
May 16 #Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 #Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 #Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 #Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 #Javascript
You might like
php 获取select下拉列表框的值
2010/05/08 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
20行python代码实现人脸识别
2019/05/05 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
Python和Sublime整合过程图示
2019/12/25 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Servlet方面面试题
2016/09/28 面试题
美发店5.1活动方案
2014/01/24 职场文书
《乞巧》教学反思
2014/02/27 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
演讲稿开场白台词
2014/08/25 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
学习十八大的心得体会
2014/09/01 职场文书
护士工作失误检讨书
2014/09/14 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python