Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)


Posted in Javascript onSeptember 14, 2017

我们接着上文继续,本文我们讲解兄弟组件的通信,项目结构还是跟上文一样.

在src/assets目录下建立文件EventHandler.js,该文件的作用在于给同级组件之间传递事件

EventHandler.js代码:

import Vue from 'Vue';
export default new Vue();

1,在Components目录下新建一个组件Brother1.vue

<template>
 <div>
  <h3>Z国: ghostwu</h3>
  <input v-on:click="send" type="button" value="发送">
  <p>{{msg}}</p>
 </div>
</template>
<script>
 import EventHandler from '../assets/EventHandler.js';
 export default {
  data(){
   return {
    msg : ''
   }
  },
  methods : {
   send(){
    EventHandler.$emit( 'myDefineEv', "ghostwu向岛国发射了一颗原子弹" );
   }
  },
  mounted (){
   let _this = this;
   EventHandler.$on( "RDefineEv", function( data ){
    _this.msg = data;
   } );
  }
 }
</script>

。通过EventHandler.$emit发送一个自定义事件myDefineEv

。通过mouted【相当于jquery的ready, 原生js的onload】,这个是vue生命周期的钩子函数, 用于在页面加载完成之后执行代码,在这里就是接收RDefineEv事件( Brother2.vue定义的 )

2,在Components目录下新建一个组件Brother2.vue

<template>
 <div>
  <h3>R国:八嘎</h3>
  {{msg}}
  <input v-on:click="defend" type="button" value="防御">
 </div>
</template>
<script>
 import EventHandler from '../assets/EventHandler.js';
 export default {
  data(){
   return {
    msg : ''
   }
  },
  methods : {
   defend(){
     EventHandler.$emit( 'RDefineEv', "岛国采用了高科技反原子弹系统" );
   }
  },
  mounted(){
   let _this = this;
   EventHandler.$on( "myDefineEv", function( data ){
    _this.msg = data;
   } );
  }
 }
</script>

。点击按钮发送RDefineEv事件

。文档ready的时候,接收myDefineEv(Brother1.vue)出发的自定义事件

三、在App.vue中调用两个同级组件

<template>
 <div id="app">
 <Brother1></Brother1>
 <Brother2></Brother2>
 </div>
</template>

<script>
 import Brother1 from './components/Brother1.vue';
 import Brother2 from './components/Brother2.vue';

 export default {
 components : {
  Brother1,
  Brother2
 }
 }
</script>

小结:

创建一个事件传递中心,例如EventHandler.js,用它作为传递消息的中介

在需要传值的组件中用EventHandler.$emit触发一个自定义事件,并传递参数

在需要接收数据的组件中用EventHandler.$on监听自定义事件,并在回调函数中处理传递过来的参数

以上这篇Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入解析contentWindow, contentDocument
Jul 04 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
javascript实现跨域的方法汇总
Jun 25 Javascript
基于JavaScript实现div层跟随滚动条滑动
Jan 12 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
ES6实现的遍历目录函数示例
Apr 07 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
详解vue更改头像功能实现
Apr 28 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
JS中一些高效的魔法运算符总结
May 06 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 #Javascript
对于js垃圾回收机制的理解
Sep 14 #Javascript
使用SVG基本操作API的实例讲解
Sep 14 #Javascript
JSON 数据格式详解
Sep 13 #Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 #Javascript
详解动画插件wow.js的使用方法
Sep 13 #Javascript
JS库之Highlight.js的用法详解
Sep 13 #Javascript
You might like
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
Javascript的闭包
2009/12/31 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
利用Python开发实现简单的记事本
2016/11/15 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python实现的knn算法示例
2018/06/14 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
python 两个数据库postgresql对比
2019/10/21 Python
Python列表list操作相关知识小结
2020/01/29 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
养牛场项目建议书
2014/05/13 职场文书
离婚协议书格式
2015/01/26 职场文书
应届毕业生自荐信
2015/03/04 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
银行求职信怎么写
2019/06/20 职场文书
anaconda python3.8安装后降级
2021/06/11 Python