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 相关文章推荐
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
Sep 07 Javascript
js限制文本框只能输入数字(正则表达式)
Jul 15 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
js四舍五入数学函数round使用实例
May 09 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
Nov 26 Javascript
用jquery的attr方法实现图片切换效果
Feb 05 Javascript
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
React学习笔记之条件渲染(一)
Jul 02 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
JavaScript实现随机点名程序
Mar 25 Javascript
JS实现放大镜效果
Sep 21 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 金额数字转换成英文
2010/05/06 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
python IP地址转整数
2020/11/20 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
渡河少年教学反思
2014/02/12 职场文书
学生操行评语大全
2014/04/24 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
建议书的格式
2014/05/12 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
SQL写法--行行比较
2021/08/23 SQL Server
Go归并排序算法的实现方法
2022/04/06 Golang
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers