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 相关文章推荐
Display SQL Server Version Information
Jun 21 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
基于jquery实现等比缩放图片
Dec 03 Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
Sep 19 Javascript
原生js实现弹出层效果
Jan 20 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 Javascript
微信小程序文章列表功能完整实例
Jun 03 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
Python守护进程用法实例分析
2015/06/04 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
浅谈Python 参数与变量
2020/06/20 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
MADE法国:提供原创设计师家具
2018/09/18 全球购物
银行实习生的自我评价
2014/01/13 职场文书
打架检讨书500字
2014/01/29 职场文书
工作睡觉检讨书
2014/02/25 职场文书
小班幼儿评语大全
2014/04/30 职场文书
班级读书活动总结
2014/06/30 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
全陪导游词开场白
2015/05/29 职场文书
秋菊打官司观后感
2015/06/03 职场文书
自书遗嘱范文
2015/08/07 职场文书
校园安全主题班会
2015/08/12 职场文书
vue修饰符.capture和.self的区别
2022/04/22 Vue.js