Vue2.0基于vue-cli+webpack同級(jí)組件之間的通信教程(推薦)
我們接著上文繼續(xù),本文我們講解兄弟組件的通信,項(xiàng)目結(jié)構(gòu)還是跟上文一樣.
在src/assets目錄下建立文件EventHandler.js,該文件的作用在于給同級(jí)組件之間傳遞事件
EventHandler.js代碼:
import Vue from 'Vue'; export default new Vue();
1,在Components目錄下新建一個(gè)組件Brother1.vue
<template>
<div>
<h3>Z國(guó): ghostwu</h3>
<input v-on:click="send" type="button" value="發(fā)送">
<p>{{msg}}</p>
</div>
</template>
<script>
import EventHandler from '../assets/EventHandler.js';
export default {
data(){
return {
msg : ''
}
},
methods : {
send(){
EventHandler.$emit( 'myDefineEv', "ghostwu向島國(guó)發(fā)射了一顆原子彈" );
}
},
mounted (){
let _this = this;
EventHandler.$on( "RDefineEv", function( data ){
_this.msg = data;
} );
}
}
</script>
。通過(guò)EventHandler.$emit發(fā)送一個(gè)自定義事件myDefineEv
。通過(guò)mouted【相當(dāng)于jquery的ready, 原生js的onload】,這個(gè)是vue生命周期的鉤子函數(shù), 用于在頁(yè)面加載完成之后執(zhí)行代碼,在這里就是接收RDefineEv事件( Brother2.vue定義的 )
2,在Components目錄下新建一個(gè)組件Brother2.vue
<template>
<div>
<h3>R國(guó):八嘎</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', "島國(guó)采用了高科技反原子彈系統(tǒng)" );
}
},
mounted(){
let _this = this;
EventHandler.$on( "myDefineEv", function( data ){
_this.msg = data;
} );
}
}
</script>
。點(diǎn)擊按鈕發(fā)送RDefineEv事件
。文檔ready的時(shí)候,接收myDefineEv(Brother1.vue)出發(fā)的自定義事件
三、在App.vue中調(diào)用兩個(gè)同級(jí)組件
<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>
小結(jié):
創(chuàng)建一個(gè)事件傳遞中心,例如EventHandler.js,用它作為傳遞消息的中介
在需要傳值的組件中用EventHandler.$emit觸發(fā)一個(gè)自定義事件,并傳遞參數(shù)
在需要接收數(shù)據(jù)的組件中用EventHandler.$on監(jiān)聽自定義事件,并在回調(diào)函數(shù)中處理傳遞過(guò)來(lái)的參數(shù)
以上這篇Vue2.0基于vue-cli+webpack同級(jí)組件之間的通信教程(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue查詢數(shù)據(jù)并通過(guò)bootstarp?table渲染數(shù)據(jù)
這篇文章主要為大家介紹了Vue查詢數(shù)據(jù)并通過(guò)bootstarp?table渲染數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
詳解vue.js+UEditor集成 [前后端分離項(xiàng)目]
本篇文章主要介紹了詳解vue.js+UEditor集成 [前后端分離項(xiàng)目] ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
vue.js中proxyTable 轉(zhuǎn)發(fā)請(qǐng)求的實(shí)現(xiàn)方法
今天小編就為大家分享一篇vue.js中proxyTable 轉(zhuǎn)發(fā)請(qǐng)求的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue?內(nèi)置組件?component?的用法示例詳解
這篇文章主要介紹了vue內(nèi)置組件component的用法,本文給大家介紹了component內(nèi)置組件切換方法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
vue3+echarts+折線投影(陰影)效果的實(shí)現(xiàn)
這篇文章主要介紹了vue3+echarts+折線投影(陰影)效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程
最近看完Vue3和Vite文檔之后,就寫了個(gè)小demo,整體感覺(jué)下來(lái)還是很絲滑的,下面這篇文章主要給大家介紹了關(guān)于vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程,需要的朋友可以參考下2022-07-07
基于vue-cli 路由 實(shí)現(xiàn)類似tab切換效果(vue 2.0)
這篇文章主要介紹了基于vue-cli 路由 實(shí)現(xiàn)類似tab切換效果(vue 2.0),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05
vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決
這篇文章主要介紹了vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue使用Multiavatarjs生成自定義隨機(jī)頭像的案例
這篇文章給大家介紹了Vue項(xiàng)目中使用Multiavatarjs生成自定義隨機(jī)頭像的案例,文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-10-10

