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 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
一步一步制作jquery插件Tabs实现过程
Jul 06 Javascript
JavaScript中去掉数组中的重复值的实现方法
Aug 03 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
一次$.getJSON不执行的简单记录
Jul 19 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
May 06 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
Sep 28 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
小程序开发之模态框组件封装
Apr 23 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+mysql一个名片库程序
2006/10/09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
关于时间计算的结总
2006/12/06 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
农历与西历对照
2006/09/06 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
python装饰器练习题及答案
2019/11/01 Python
Python使用type动态创建类操作示例
2020/02/29 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
打造完美自荐信
2014/01/24 职场文书
幼儿园老师寄语
2014/04/03 职场文书
拓展策划方案
2014/06/03 职场文书
2014年督导工作总结
2014/11/19 职场文书
团组织推荐意见
2015/06/05 职场文书
休学证明范本
2015/06/19 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Nginx配置https的实现
2021/11/27 Servers
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技