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 类、命名空间、代码组织代码
Jul 31 Javascript
jquery制作居中遮罩层效果分享
Feb 21 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
Sep 27 Javascript
JQuery实现的按钮倒计时效果
Dec 23 Javascript
实践中学习AngularJS表单
Mar 21 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
Angular2学习教程之组件中的DOM操作详解
May 28 Javascript
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
Feb 01 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
setAttribute 与 class冲突解决
2008/02/17 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
Python通过select实现异步IO的方法
2015/06/04 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
前台文员的岗位职责
2013/11/14 职场文书
内容编辑个人求职信
2013/12/10 职场文书
先进典型事迹材料
2014/12/29 职场文书
党纪处分决定书
2015/06/24 职场文书
小学语文教学随笔
2015/08/14 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
九年级化学教学反思
2016/02/22 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers