vuejs组件交互 - 02 - 事件中心管理组件间的通信
事件中心
这个可以是一个空的全局的Vue实例,其他的组件利用这个实例emit和on自定义事件,这样组件定义了自己的事件处理方法。
import Vue from 'Vue'
window.eventHub = new Vue();
事件监听和注销监听
事件监听应在根组件的created钩子函数中进行,在组件销毁前应注销事件监听
  //hook
  created: function  () {
    //listen event
    window.eventHub.$on('switchComments',this.switchComments);
    window.eventHub.$on('removeIssue',this.removeIssue);
    window.eventHub.$on('saveComment',this.saveComment);
    window.eventHub.$on('removeComment',this.removeComment);
    //get init data
    var that =this;
    axios.get('issue/index')
    .then(function (resp) {
      that.issue_list=resp.data;
    });
  },
  beforeDestroy: function () {
    window.eventHub.$off('switchComments');
    window.eventHub.$off('removeIssue');
    window.eventHub.$off('saveComment');
    window.eventHub.$off('removeComment');
  }
子组件的emit事件,注意这里用的window.$emit而不是this.emit
  methods: {
    removeComment: function(index,cindex) {
      window.eventHub.$emit('removeComment', {index:index, cindex:cindex});
    },
    saveComment: function(index) {
      window.eventHub.$emit('saveComment', {index: index, comment: this.comment});
      this.comment="";
    }
  },
**Note: **这其实还不是最理想的通信方式,下一篇我们看看vuex怎么玩
vuejs组件交互 - 02 - 事件中心管理组件间的通信的更多相关文章
- 单一事件中心管理组件通信( vuex )
		有时候两个组件也需要通信(非父子关系).在简单的场景下,可以使用一个空的 Vue 实例作为中央事件总线: 补充$emit ,$on的讲解 代码: <!DOCTYPE html> <h ... 
- webpack+vue 组件间传参(单一事件中心管理组件通信--$root),如果有路由的话会失效
		先给一个例子: <body> <div id="box"> <com-a></com-a> <com-b></co ... 
- vue2 单一事件中心管理组件通信
- vuejs组件交互 - 03 - vuex状态管理实现组件交互
		组件交互模式的使用场景 简单应用直接使用props down,event up的模式就可以了 小型应用使用事件中心模式即可 中大型应用使用vuex的状态管理模式 vuex 包含要管理的应用数据和更新数 ... 
- Agile.Net 组件式开发平台 - 脚本管理组件
		脚本管理组件用于管理系统查询脚本,由于数据查询的复杂性和可变性,平台规范要求使用查询使用建立在脚本管理器中的SQL语句.新增.更新.删除数据采用数据访问支持库API. 示例如下: 首先在脚本管理器中定 ... 
- Agile.Net 组件式开发平台 - 内核管理组件
		敏捷开发体系 软件构件技术:所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装.软件的构件化和集成技术的目标是:软件系统可以由不同厂商提供的,用不同语言开发 ... 
- vue子组件使用自定义事件向父组件传递数据
		使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称’,传递给父组件的数据) <!DOCTYPE html> <html lang= ... 
- vue.js组件之j间的通讯三,通过单一事件来管理组件通讯
		<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ... 
- vue.js组件之j间的通讯四,通过单一事件来管理组件通讯
		总结; 首先需要创建是一个空实例: var vm = new Vue(); vm.$emit(事件,数据); vm.$on(事件,function(data){ }bind(this)) 
随机推荐
- 在NDK C++线程中如何调用JAVA API
			from://http://www.eoeandroid.com/thread-150995-1-1.html 在NDK中创建的线程中, 只允许调用静态的Java API. 当在线程中调用env-&g ... 
- Android倒计时功能的实现
			Android中的倒计时的功能(也能够直接使用CountDownTimer这个类直接实现,相关此Demo可查看我的博客).參考了网上写的非常好的一个倒计时Demo: watermark/2/text/ ... 
- HTTP协议--MyWebServer
			HTTP协议 HTTP协议是一种Web通信协议,通过特定的规则来实现服务器跟客户端的通信.HTTP协议有这样几个特点: (1)面向无连接的,一次只能处理一个请求,HTTP1.0服务器解析完客户端请求并 ... 
- Orchard之创建列表
			一:首先需要确保 List Module 的开始 即: Enable 之后,左边的列表中,多了一个 List 功能菜单. 二:为 Content type 选定 Cotainable 不再赘述. 三: ... 
- Makefile:160: recipe for target 'all' failed (Ubuntu 16.06 + Opencv3.2)解决办法
			前言 之前一直用的opencv 好好的,今天安装了anaconda之后,python中的opencv不能用了,即便是拷贝cv2.so之后也是不能用,问题如下: 根本原因 安装anaconda之后,很多 ... 
- Apache Jmeter 教程
			Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadR ... 
- diff详解
			作者: 阮一峰 日期: 2012年8月29日 diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前 ... 
- 【LINK】手机Web开发框架
			LINK : http://www.oschina.net/project/tag/322/mobile-web AmazeUI : http://amazeui.org/ 
- Jackson 教程演示样例
			查看原文教程:http://www.ibloger.net/article/275.html Json经常使用的类库例如以下 Jackson:http://jackson.codehaus.org/ ... 
- C++ stringstream格式化输出输入探索
			- 最近在笔试时经常遇见各种输入问题,于是细心总结一波: - 首先string str; cin>>str;遇到空格结束: - 于是乎产生了getline(),可与得到一行字符串:空格自动 ... 
