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 相关文章推荐
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
限制文本框输入N个字符的js代码
May 13 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
Dec 06 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
Angularjs上传图片实例详解
Aug 06 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 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防注入和XSS攻击通用过滤
2015/09/13 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
php如何获取Http请求
2020/04/30 PHP
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
python获取标准北京时间的方法
2015/03/24 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python树的同构学习笔记
2019/09/14 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Python输出指定字符串的方法
2020/02/06 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
python模拟实现分发扑克牌
2020/04/22 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
仓管员岗位责任制
2014/02/19 职场文书
求职信范文大全
2014/05/26 职场文书
世博会口号
2014/06/20 职场文书
工程承包协议书
2014/10/20 职场文书
基层党建工作简报
2015/07/21 职场文书
css3 选择器
2022/05/11 HTML / CSS