vuejs事件中心管理组件间的通信详解


Posted in Javascript onAugust 09, 2017

本文为大家分享了vuejs事件中心管理组件间的通信,供大家参考,具体内容如下

事件中心

这个可以是一个空的全局的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怎么玩

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js location.replace与location.reload的区别
Sep 08 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
js匿名函数使用&传参(实例)
Sep 08 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
Apr 08 Javascript
微信小程序websocket实现即时聊天功能
May 21 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
Oct 11 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
May 06 Javascript
Vue实现点击箭头上下移动效果
Jun 11 Javascript
JS实现的加减乘除四则运算计算器示例
Aug 09 #Javascript
AngularJS ionic手势事件的使用总结
Aug 09 #Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 #Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 #Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 #Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 #Javascript
vuejs父子组件之间数据交互详解
Aug 09 #Javascript
You might like
php动态添加url查询参数的方法
2015/04/14 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
python实现按长宽比缩放图片
2018/06/07 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
详解Python3 基本数据类型
2019/04/19 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
在vscode中配置python环境过程解析
2019/09/28 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
教师岗位职责范本
2013/12/29 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python
Python常遇到的错误和异常
2021/11/02 Python