溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue中bus怎么用

發(fā)布時(shí)間:2021-04-02 11:25:10 來源:億速云 閱讀:229 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Vue中bus怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

vue總線機(jī)制(bus)

vue中非父子組件之間通信除了使用vuex,也可以通過bus總線,兩者適用場景不同。

bus適合小項(xiàng)目、數(shù)據(jù)被更少組件使用的項(xiàng)目,對于中大型項(xiàng)目 數(shù)據(jù)在很多組件之間使用的情況 bus就不太適用了。bus其實(shí)就是一個(gè)發(fā)布訂閱模式,利用vue的自定義事件機(jī)制,在觸發(fā)的地方通過$emit向外發(fā)布一個(gè)事件,在需要監(jiān)聽的頁面,通過$on監(jiān)聽事件。

vuex適用中大型項(xiàng)目、數(shù)據(jù)在多組件之間公用的情況。

組件通信bus的使用

在utils文件下下創(chuàng)建bus.js

// utils - bus.js
import Vue from 'vue'
const bus = new Vue()
export default bus

一、傳值

發(fā)送信息

import bus from '@/utils/bus'

第一個(gè)參數(shù)為標(biāo)志變量,第二個(gè)參數(shù)為通信的值

us.$emit('message', 'hello');

接收信息

import bus from '@/utils/bus'

第一個(gè)參數(shù)為標(biāo)志變量,第二個(gè)參數(shù)中的e為通信的值

bus.$on('message', (e) => {
 console.log(e)
})

二、調(diào)用方法

一個(gè)組件(A)調(diào)用另一個(gè)組件(B)的方法

B組件的方法

import bus from '@/utils/bus'
mounted () { 
 bus.$on('testA', this.testA) 
},
testA () {
 console.log('由A組件調(diào)用')
}

A組件調(diào)用

import bus from '@/utils/bus'
mounted () {
 bus.$emit('testA')
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Vue中bus怎么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI