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 相关文章推荐
js 获取子节点函数 (兼容FF与IE)
Apr 18 Javascript
解析JavaScript中的不可见数据类型
Dec 02 Javascript
js实现div闪烁原理及实现代码
Jun 24 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
Mar 02 Javascript
简介JavaScript中toUpperCase()方法的使用
Jun 06 Javascript
Uploadify上传文件方法
Mar 16 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP引用的调用方法分析
2016/04/25 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
JQuery循环滚动图片代码
2011/12/08 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
python flask实现分页效果
2017/06/27 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
《去年的树》教学反思
2014/04/11 职场文书