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 32位整型无符号操作示例
Dec 08 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
Feb 04 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
6种javascript显示当前系统时间代码
Dec 01 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
Node 自动化部署的方法
Oct 17 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
vue 解决异步数据更新问题
Oct 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
PHP注释实例技巧
2008/10/03 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
Python中一些深不见底的“坑”
2019/06/12 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
奥巴马演讲稿
2014/01/08 职场文书
师范学院教师自荐书
2014/01/31 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
英语国培研修感言
2014/02/13 职场文书
推荐信怎么写
2014/05/09 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
趵突泉导游词
2015/02/03 职场文书
初中体育教学随笔
2015/08/15 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android