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 相关文章推荐
jquery序列化表单去除指定元素示例代码
Apr 10 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
Feb 18 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
Javascript创建类和对象详解
May 31 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 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
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
收集的几个Python小技巧分享
2014/11/22 Python
python实现统计代码行数的方法
2015/05/22 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书