日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Vue.js中使用事件總線在組件之間傳遞數(shù)據(jù)

在Vue.js中有一種使用event emitters通過父組件在兩個子組件之間進(jìn)行通信的方法。在子組件中設(shè)置事件并在父組件中設(shè)置偵聽器時,響應(yīng)式將通過父組件向下傳遞到嵌套組件。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、怒江州網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、怒江州網(wǎng)絡(luò)營銷、怒江州企業(yè)策劃、怒江州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供怒江州建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

雖然這是一個有價值的解決方案,但隨著項目的發(fā)展,它可能會變得笨拙。事件總線是一個 Vue.js 實(shí)例,它可以在一個組件中發(fā)出事件,然后直接偵聽并響應(yīng)另一個組件中發(fā)出的事件——無需父組件的幫助。事件總線比發(fā)射器更高效,因為它需要更少的代碼來運(yùn)行。

在本教程中,我們將在 Vue.js 項目中創(chuàng)建一個事件總線,以促進(jìn)兩個組件之間通過私有通道進(jìn)行通信。這通常稱為發(fā)布-訂閱方法。

先決條件

這篇文章適合所有階段的開發(fā)人員,包括初學(xué)者。在閱讀本文之前,您應(yīng)該已經(jīng)具備以下幾點(diǎn):

  • 已安裝版本 14.18+ 及更高版本的Node.js。您可以通過在終端/命令提示符下運(yùn)行以下命令來驗證您是否具有此版本: node -v
  • 安裝了 npm 版本 6.x 及更高版本。在終端中使用以下命令驗證安裝的版本: npm -v
  • Visual Studio Code Editor 或類似的代碼編輯器
  • 運(yùn)行以下命令來搭建 Vite 和 Vue 項目的基架:
# npm 6.x
npm create vite@latest event-bus-tutorial --template vue

# npm 7+, extra double-dash is needed:
npm create vite@latest event-bus-tutorial -- --template vue
  • 導(dǎo)航到 event-bus-tutorial 目錄并使用 npm 安裝所需的依賴項:
cd event-bus-tutorial
npm install

在 Vue 2 中使用事件總線模式

在 Vue 2.x 中,Vue 實(shí)例可用于觸發(fā)通過事件發(fā)射器 API($on、$off 和$once) 強(qiáng)制附加的處理程序。

為了使用事件總線模式,你所要做的就是創(chuàng)建一個 Vue 構(gòu)造函數(shù)的新實(shí)例,將該實(shí)例分配給一個名為 eventBus 的常量變量,然后將其導(dǎo)出。這個實(shí)例充當(dāng)事件總線,允許 Vue 應(yīng)用程序中的不同組件相互通信:

// eventBus.js
const eventBus = new Vue()
export default eventBus

導(dǎo)入 eventBus 實(shí)例并在要接收事件的組件中,添加事件偵聽器:

// ChildComponent.vue
import eventBus from './eventBus'

export default {
  mounted() {
    // adding eventBus listener
    eventBus.$on('custom-event', () => {
      console.log('Custom event triggered!')
    })
  },
  beforeDestroy() {
    // removing eventBus listener
    eventBus.$off('custom-event')
  }
}

導(dǎo)入eventBus實(shí)例并在要發(fā)送事件的組件中,添加事件發(fā)射器:

// ParentComponent.vue
import eventBus from './eventBus'

export default {
  methods: {
    sendCustomEvent() {
      // sending the event
      eventBus.$emit('custom-event')
    }
  }
}

Vue 3 中的事件總線入門

在 Vue 3 中, $on 、 $off  $once 方法已從 Vue 實(shí)例中完全刪除。因此,為了使用事件總線模式,必須安裝外部事件發(fā)射器和偵聽器包,例如 mitt。

使用以下命令安裝 mitt 包并開始提供應(yīng)用程序:

npm install --save mitt
npm run dev

main.js 打開位于目錄 src 中的文件,并修改其中的代碼,如下所示:

import { createApp } from 'vue'
import mitt from 'mitt'
import App from './App.vue'

const emitter = mitt()
const app = createApp(App)

app.config.globalProperties.emitter = emitter
app.mount('#app')

這段代碼通過創(chuàng)建一個發(fā)射器實(shí)例,使其通過 Vue 應(yīng)用程序?qū)嵗衷L問,并將應(yīng)用程序掛載到 DOM 中,將 mitt 事件發(fā)射器庫與 Vue 3 應(yīng)用程序集成。這允許組件使用發(fā)射器發(fā)出和偵聽事件,而無需直接導(dǎo)入。

創(chuàng)建我們的子組件

在我們的演示中,我們將創(chuàng)建兩個子組件,它們需要在不使用父組件作為中介的情況下相互通信。首先,在 components 目錄中創(chuàng)建一個名為Child1.vue的新文件,并將以下代碼塊粘貼到其中:





總體而言,此代碼呈現(xiàn)一個 

 包含樣式的