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 相关文章推荐
javascript 有用的脚本函数
May 07 Javascript
$.format,jquery.format 使用说明
Jul 13 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
Feb 25 Javascript
JS中多步骤多分步的StepJump组件实例详解
Apr 01 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
Sep 29 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
浅谈Angular7 项目开发总结
Dec 19 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
Sep 20 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
php三维数组去重(示例代码)
2013/11/26 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
Javascript 模式实例 观察者模式
2009/10/24 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
玩转Koa之核心原理分析
2018/12/29 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
matplotlib绘制动画代码示例
2018/01/02 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
非常详细的C#面试题集
2016/07/13 面试题
领导失职检讨书
2014/02/24 职场文书
担保书范文
2015/01/20 职场文书
报案材料怎么写
2015/05/25 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers