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 相关文章推荐
javascript删除数组重复元素的方法汇总
Jun 24 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
node+express制作爬虫教程
Nov 11 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
Bootstrap常用组件学习(整理)
Mar 24 Javascript
Vue组件化通讯的实例代码
Jun 23 Javascript
JavaScript插件Tab选项卡效果
Nov 14 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
three.js 如何制作魔方
Jul 31 Javascript
vue引入Excel表格插件的方法
Apr 28 Vue.js
JavaScript 原型与原型链详情
Nov 02 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初学者头疼十四条问题大总结
2008/11/12 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
JSON相关知识汇总
2015/07/03 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
小程序实现按下录音松开识别语音
2019/11/22 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
numpy 声明空数组详解
2019/12/05 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
python批量处理txt文件的实例代码
2020/01/13 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
思想品德自我鉴定
2013/10/12 职场文书
2013英文求职信模板范文
2013/11/15 职场文书
医院辞职信范文
2014/01/17 职场文书
优秀公益广告词大全
2014/03/19 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
介绍长城的导游词
2015/01/30 职场文书
烟台的海导游词
2015/02/02 职场文书