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 相关文章推荐
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
封装了一个js图片轮换效果的函数
Sep 28 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
May 25 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
Swiper实现轮播图效果
Jul 03 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
js排序与重组的实例讲解
Aug 28 Javascript
p5.js实现斐波那契螺旋的示例代码
Mar 22 Javascript
利用Vue实现一个markdown编辑器实例代码
May 19 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 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读取目录下所有文件的代码
2008/01/07 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
优秀导游先进事迹材料
2014/01/25 职场文书
应届毕业生求职信
2014/05/26 职场文书
水电维修专业推荐信
2014/09/06 职场文书
奖学金感谢信
2015/01/21 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
销售辞职信范文
2015/03/02 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python