Rumah > hujung hadapan web > View.js > teks badan

Tutorial asas VUE3: menggunakan bas acara Vue.js

王林
Lepaskan: 2023-06-15 18:17:08
asal
1378 orang telah melayarinya

Vue.js ialah rangka kerja JavaScript bahagian hadapan yang popular, dan bas acaranya wujud sebagai salah satu fungsi terasnya. Dalam Vue.js, bas acara bertindak sebagai medium untuk komunikasi antara komponen. Artikel ini akan memperkenalkan anda kepada cara menggunakan bas acara Vue.js.

Apakah bas acara itu?

Bas acara ialah pelaksanaan corak bas acara pusat. Ringkasnya, bas acara ialah contoh Vue global yang boleh kami gunakan di mana-mana sahaja dalam aplikasi kami. Ia bertindak sebagai medium untuk komunikasi antara komponen.

Vue.js memasang bas acara pada Vue.prototype, yang bermaksud ia adalah sebahagian daripada tika Vue, jadi anda boleh menggunakannya di mana-mana dalam aplikasi anda.

Bagaimana untuk menyediakan bas acara?

Menyediakan bas acara semudah mengisytiharkannya dalam tika Vue baharu. Dalam fail main.js anda, anda boleh menambah kod berikut:

Vue.prototype.$bus = new Vue();
Salin selepas log masuk

Barisan kod ini membuat instance Vue dan melekapkannya pada Vue.prototype, menjadikannya sebagai bahagian Vue. Sekarang, anda boleh menggunakan $bus dalam mana-mana komponen.

Bagaimana untuk menghantar mesej antara komponen?

Menghantar mesej antara komponen adalah sangat mudah menggunakan bas acara. Anda hanya perlu menghantar mesej dalam satu komponen dan mendengar mesej dalam komponen lain. Mari lihat contoh:

// 组件 A
this.$bus.$emit('message', 'hello from A');

// 组件 B
this.$bus.$on('message', message => {
  console.log(message); // hello from A
});
Salin selepas log masuk

Dalam komponen A, kami menggunakan kaedah $emit untuk menghantar mesej 'mesej' dengan data 'hello from A'. Dalam komponen B, kami menggunakan kaedah $on untuk mendengar mesej 'mesej' dan memproses mesej dalam fungsi panggil balik.

Perlu diingat bahawa apabila komponen dimusnahkan, pendengar acara perlu dialih keluar menggunakan kaedah $off untuk mengelakkan kebocoran memori.

Bagaimana untuk menggunakan bas acara dalam aplikasi?

Sekarang anda tahu cara menyediakan bas acara dan menghantar mesej antara komponen, bagaimanakah anda menggunakannya dalam aplikasi anda? Berikut ialah contoh mudah:

// App.vue
<template>
  <div>
    <router-view />
    <button @click="sendMessage">Send message</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendMessage() {
      this.$bus.$emit('message', 'hello from App');
    }
  }
};
</script>

// Home.vue
<template>
  <div>
    <h1>Welcome Home</h1>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    };
  },
  created() {
    this.$bus.$on('message', message => {
      this.message = message;
    });
  }
};
</script>
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan butang dalam App.vue yang menghantar mesej 'mesej'. Dalam Home.vue, kami menggunakan kaedah $on untuk mendengar mesej 'mesej' dan memaparkan mesej pada halaman.

Ringkasan

Bas acara ialah ciri Vue.js yang sangat penting yang boleh membantu anda mencapai komunikasi antara komponen. Dengan menggunakan kaedah $emit dan $on, anda boleh menghantar mesej antara komponen dengan mudah. Ingat untuk menggunakan kaedah $off untuk mengalih keluar pendengar acara apabila komponen dimusnahkan untuk mengelakkan masalah kebocoran memori. Saya harap artikel ini berguna kepada anda, terima kasih kerana membaca!

Atas ialah kandungan terperinci Tutorial asas VUE3: menggunakan bas acara Vue.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan