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中sort()方法的用法
Nov 04 Javascript
基于jQuery实现点击同时更改两个iframe的网址
Jul 01 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
js+css实现导航效果实例
Feb 10 Javascript
JavaScript从数组中删除指定值元素的方法
Mar 18 Javascript
简单模拟node.js中require的加载机制
Oct 27 Javascript
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
详解从Vue-router到html5的pushState
Jul 21 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
Sep 27 Javascript
基于vue.js实现购物车
Jan 15 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript hashtable实现代码
2009/10/13 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
python实现2048小游戏
2015/03/30 Python
python模拟Django框架实例
2016/05/17 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
介绍下java.util.Arrays类
2012/10/16 面试题
工作作风承诺书
2014/08/30 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
银行员工考核评语
2014/12/31 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android
如何使用python包中的sched事件调度器
2022/04/30 Python