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 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
基于Jquery的淡入淡出的特效基础练习
Dec 13 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 Javascript
如何实现星星评价(jquery.raty.js插件)
Dec 21 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
Angular4 组件通讯方法大全(推荐)
Jul 12 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
微信小程序日历弹窗选择器代码实例
May 09 Javascript
vue+Element-ui前端实现分页效果
Nov 15 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 HTML代码串 截取实现代码
2009/06/29 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
python读取oracle函数返回值
2016/07/18 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
python3人脸识别的两种方法
2019/04/25 Python
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
行政专员岗位职责
2014/01/02 职场文书
安全资金保障制度
2014/01/23 职场文书
校园广播稿500字
2014/02/04 职场文书
业务员的岗位职责
2014/03/15 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
交通事故起诉书
2015/05/19 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫