Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信


Posted in Javascript onFebruary 23, 2017

最近在学习vue组件鸡组件之前通信问题,正好看到,以此来留作笔记。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Vue2-单一事件管理组件通信</title>
  <script src="vue.js"></script>
  <script type="text/javascript">

  //准备一个空的实例对象
  var Event = new Vue();

  //组件A
  var A = {
    template: `
      <div>
        <span>我是A组件的数据->{{a}}</span>
        <input type="button" value="把A数据传给C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("a-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是a组件中数据"
      }
    }
  };
  //组件B
  var B = {
    template: `
      <div>
        <span>我是B组件的数据->{{a}}</span>
        <input type="button" value="把B数据传给C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("b-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是b组件中数据"
      }
    }
  };
  //组件C
  var C = {
    template: `
      <div>
        <h3>我是C组件</h3>
        <span>接收过来A的数据为: {{a}}</span>
        <br>
        <span>接收过来B的数据为: {{b}}</span>
      </div>
    `,
    mounted () {
      //接收A组件的数据
      Event.$on("a-msg", function (a) {
        this.a = a;
      }.bind(this));

      //接收B组件的数据
      Event.$on("b-msg", function (a) {
        this.b = a;
      }.bind(this));
    },
    data () {
      return {
        a: "",
        b: ""
      }
    }
  };
  window.onload = function () {
    new Vue({
      el: "#box",
      components: {
        "dom-a": A,
        "dom-b": B,
        "dom-c": C
      }
    });
  };


  </script>
</head>
<body>
  <div id="box">
    <dom-a></dom-a>   
    <dom-b></dom-b>   
    <dom-c></dom-c>   
  </div>

</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
jQuery live( type, fn ) 委派事件实现
Oct 11 Javascript
基于jQuery的仿flash的广告轮播代码
Nov 04 Javascript
屏蔽相应键盘按钮操作
Mar 10 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
JS防止网页被嵌入iframe框架的方法分析
Sep 13 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
Javascript创建类和对象详解
May 31 Javascript
js实现数组和对象的深浅拷贝
Sep 30 Javascript
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
js实现GIF动图分解成多帧图片上传
Oct 24 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 #Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 #Javascript
js实现简单的选项卡效果
Feb 23 #Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 #Javascript
jQuery事件详解
Feb 23 #Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 #Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 #Javascript
You might like
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python银行系统实现源码
2019/10/25 Python
Python如何计算语句执行时间
2019/11/22 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
预备党员思想汇报范文
2014/01/11 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
2014年党支部承诺书
2014/05/30 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
大型公益活动策划方案
2014/08/20 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
骨干教师考核评语
2014/12/31 职场文书
部门2015年度工作总结
2015/04/29 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
《全神贯注》教学反思
2016/02/22 职场文书