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中的值是按值传递还是按引用传递问题探讨
Jan 30 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
JSON 数据详解及实例代码分析
Jan 20 Javascript
React Native预设占位placeholder的使用
Sep 28 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
深入理解react 组件类型及使用场景
Mar 07 Javascript
微信小程序实现收货地址左滑删除
Nov 18 Javascript
深入理解 ES6中的 Reflect用法
Jul 18 Javascript
js实现列表按字母排序
Aug 11 Javascript
JS轻量级函数式编程实现XDM三
Jun 16 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边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP输入流php://input介绍
2012/09/18 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
json的使用小结
2016/06/08 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python实现windows下文件备份脚本
2018/05/27 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
pytest中文文档之编写断言
2019/09/12 Python
Python函数中的可变长参数详解
2019/09/12 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
产品销售员岗位职责
2013/12/18 职场文书
我未来的职业规划范文
2014/01/11 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
《赶海》教学反思
2014/04/20 职场文书
本溪水洞导游词
2015/02/11 职场文书
python 命令行传参方法总结
2021/05/25 Python
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电