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 Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
Extjs优化(二)Form表单提交通用实现
Apr 15 Javascript
判断javascript的数据类型(示例代码)
Dec 11 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
理解JavaScript原型链
Oct 25 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
Jan 30 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
Sep 29 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 Javascript
jquery实现图片放大镜效果
Dec 23 jQuery
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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
人大复印资料处理程序_补充篇
2006/10/09 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
Javascript开发包大全整理
2006/12/22 Javascript
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python模拟表单提交登录图书馆
2018/04/27 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python实现列表的排序方法分享
2019/07/01 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
2015年会计个人工作总结
2015/04/02 职场文书
加班费申请报告
2015/05/15 职场文书
反腐倡廉观后感
2015/06/08 职场文书
个人催款函范文
2015/06/23 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang
MySQL详细讲解变量variables的用法
2022/06/21 MySQL