Rumah hujung hadapan web View.js Bagaimana untuk menggunakan bas acara untuk komunikasi komponen dalam Vue?

Bagaimana untuk menggunakan bas acara untuk komunikasi komponen dalam Vue?

Jul 18, 2023 am 08:16 AM
vue Komunikasi komponen event bus

Bagaimana untuk menggunakan bas acara untuk komunikasi komponen dalam Vue?

Ikhtisar:
Dalam aplikasi Vue, komunikasi komponen adalah bahagian yang sangat penting. Apabila kami perlu memindahkan data atau mencetuskan peristiwa antara komponen yang berbeza, kami boleh menggunakan mekanisme bas acara Vue. Bas acara ialah pengurus acara pusat yang digunakan untuk komunikasi antara komponen yang berbeza.

Pelaksanaan:
Bas acara dalam Vue boleh dibuat dan digunakan melalui kejadian Vue. Berikut ialah langkah untuk menggunakan bas acara Vue untuk komunikasi komponen:

Langkah 1: Buat Bas Acara
Buat Bas Acara di suatu tempat dalam projek. Ia boleh menjadi fail js yang berasingan atau contoh Vue. Sebagai contoh, kita boleh mencipta contoh Vue sebagai Bas Acara dalam fail utama.js:

1

2

3

4

// main.js

import Vue from 'vue'

 

export const EventBus = new Vue()

Salin selepas log masuk

Langkah 2: Hantar acara
Dalam komponen yang perlu menghantar acara, hantar acara melalui contoh Bas Acara. Acara boleh dihantar menggunakan kaedah $emit(), yang menerima dua parameter: nama acara dan data yang diluluskan.

1

2

3

4

5

6

7

8

9

10

// ComponentA.vue

import { EventBus } from '../main.js'

 

export default {

  methods: {

    sendData() {

      EventBus.$emit('refresh-data', data)

    }

  }

}

Salin selepas log masuk

Langkah 3: Terima acara
Dalam komponen yang perlu menerima acara, terima acara melalui contoh Bas Acara. Peristiwa boleh didengar menggunakan kaedah $on(), yang menerima dua parameter: nama acara dan fungsi panggil balik. Data yang diterima boleh diproses dalam fungsi panggil balik.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

// ComponentB.vue

import { EventBus } from '../main.js'

 

export default {

  data() {

    return {

      receivedData: ''

    }

  },

  mounted() {

    EventBus.$on('refresh-data', (data) => {

      this.receivedData = data

    })

  }

}

Salin selepas log masuk

Melalui langkah di atas, kami boleh mencapai pemindahan data dan pencetusan peristiwa antara komponen yang berbeza.

Contoh:
Andaikan terdapat dua komponen KomponenA dan KomponenB, KomponenA bertanggungjawab untuk menghantar data, dan KomponenB bertanggungjawab untuk menerima data.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

// ComponentA.vue

<template>

  <div>

    <button @click="sendData">发送数据</button>

  </div>

</template>

 

<script>

import { EventBus } from '../main.js'

 

export default {

  methods: {

    sendData() {

      const data = 'Hello, ComponentB'

      EventBus.$emit('refresh-data', data)

    }

  }

}

</script>

 

// ComponentB.vue

<template>

  <div>

    <p>接收到的数据:{{ receivedData }}</p>

  </div>

</template>

 

<script>

import { EventBus } from '../main.js'

 

export default {

  data() {

    return {

      receivedData: ''

    }

  },

  mounted() {

    EventBus.$on('refresh-data', (data) => {

      this.receivedData = data

    })

  }

}

</script>

Salin selepas log masuk

Dalam contoh di atas, mengklik butang dalam ComponentA menghantar acara yang dipanggil 'refresh-data', yang diterima dalam ComponentB dan mengemas kini data yang diterima.

Ringkasan:
Dengan menggunakan mekanisme bas acara Vue, kami boleh mencapai komunikasi antara komponen dengan mudah. Komponen yang menggunakan Bas Acara untuk membuat dan menghantar acara bertindak sebagai penerbit, manakala komponen yang menerima acara bertindak sebagai pelanggan. Pendekatan decoupled ini boleh menjadikan komunikasi antara komponen lebih fleksibel dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan bas acara untuk komunikasi komponen dalam Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Apr 04, 2025 pm 02:06 PM

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...

Bagaimana cara mencetuskan peristiwa onblur sel dalam mod pengeditan baris Avue-crud? Bagaimana cara mencetuskan peristiwa onblur sel dalam mod pengeditan baris Avue-crud? Apr 04, 2025 pm 02:00 PM

Acara Onblur yang melaksanakan penyuntingan baris Avue-Crud di Perpustakaan Komponen Avue secara manual mencetuskan komponen Avue-Crud. Ia menyediakan fungsi penyuntingan dalam talian yang mudah, tetapi kadang-kadang kita perlu ...

Bagaimana menggunakan Vue 3 untuk melaksanakan fungsi pemuatan menatal yang serupa dengan rekod sembang WeChat? Bagaimana menggunakan Vue 3 untuk melaksanakan fungsi pemuatan menatal yang serupa dengan rekod sembang WeChat? Apr 04, 2025 pm 03:51 PM

Bagaimana untuk mencapai pemuatan menatal ke atas yang serupa dengan rekod sembang WeChat? Semasa membangunkan aplikasi yang serupa dengan rekod sembang WeChat, soalan biasa adalah bagaimana ...

Adakah penumpuan teknologi menyusun pemilihan tumpukan teknologi? Adakah penumpuan teknologi menyusun pemilihan tumpukan teknologi? Apr 02, 2025 pm 04:42 PM

Tajuk: Hubungan antara Teknologi Stack Convergence dan Pemilihan: Adakah Teknologi Stack Convergence merujuk kepada pemilihan tumpukan teknologi? Saya melihat artikel yang mempunyai timbunan teknologi konvergensi ...

Sekiranya pemaju PHP beralih ke depan atau ke hadapan? Sekiranya pemaju PHP beralih ke depan atau ke hadapan? Apr 02, 2025 pm 04:57 PM

Pilihan Kerjaya untuk Pemaju PHP: Untuk beralih pergi atau ke hadapan? Dalam industri pembangunan perisian moden, pemilihan susunan teknologi dan perancangan laluan pembangunan kerjaya adalah untuk ...

Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Apr 04, 2025 pm 05:27 PM

Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Apabila menggunakan Vue-Router untuk pengalihan halaman, anda mungkin melihat ...

Bagaimana untuk melaksanakan fungsi memuat naik foto ahli-ahli fotografi tinggi jenama yang berbeza di hujung depan? Bagaimana untuk melaksanakan fungsi memuat naik foto ahli-ahli fotografi tinggi jenama yang berbeza di hujung depan? Apr 04, 2025 pm 05:42 PM

Bagaimana untuk melaksanakan fungsi memuat naik foto jenama-jenama ahli fotografi yang berbeza di hujung depan apabila membangunkan projek-projek front-end, anda sering menghadapi keperluan untuk mengintegrasikan peralatan perkakasan. untuk ...

Bagaimana cara menggunakan El-Table untuk melaksanakan pengelompokan meja, seret dan drop penyortiran di VUE2? Bagaimana cara menggunakan El-Table untuk melaksanakan pengelompokan meja, seret dan drop penyortiran di VUE2? Apr 04, 2025 pm 07:54 PM

Melaksanakan El-Table Table Group Drag dan Drop Sorting di VUE2. Menggunakan jadual el-meja untuk melaksanakan seretan kumpulan dan penyortiran drop dalam VUE2 adalah keperluan biasa. Katakan kita mempunyai ...

See all articles