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 相关文章推荐
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
javascript用函数实现对象的方法
May 14 Javascript
JavaScript中日期的相关操作方法总结
Oct 24 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
javascript添加前置0(补零)的几种方法
Jan 05 Javascript
vue组件详解之使用slot分发内容
Apr 09 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
家长写给孩子的评语
2014/04/18 职场文书
地震捐款倡议书
2014/08/29 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
开学典礼观后感
2015/06/15 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js