Pada Vue.js versi 3, anda boleh menggunakan perpustakaan atau fungsi pihak ketiga yang ditulis dalam corak pengaturcaraan penerbit-pelanggan (konsep PubSub).
event.js
//events - a super-basic Javascript (publish subscribe) pattern class Event{ constructor(){ this.events = {}; } on(eventName, fn) { this.events[eventName] = this.events[eventName] || []; this.events[eventName].push(fn); } off(eventName, fn) { if (this.events[eventName]) { for (var i = 0; i < this.events[eventName].length; i++) { if (this.events[eventName][i] === fn) { this.events[eventName].splice(i, 1); break; } }; } } trigger(eventName, data) { if (this.events[eventName]) { this.events[eventName].forEach(function(fn) { fn(data); }); } } } export default new Event();
index.js
import Vue from 'vue'; import $bus from '.../event.js'; const app = Vue.createApp({}) app.config.globalProperties.$bus = $bus;
Seperti yang dicadangkan dalam dokumentasirasmi, anda boleh menggunakan perpustakaanmittuntuk menghantar acara antara komponen, dengan mengandaikan kami mempunyai bar sisi danpengepala yang mengandungi butang untuk menutup/membuka bar sisi, kami memerlukan Butang itu untuk togol sifat tertentu dalam komponen bar sisi:
Import perpustakaan dalam main.js dan buat contoh pemancar ini dan takrifkannya sebagaiharta global:
Pemasangan:
npm install --save mitt
Penggunaan:
import { createApp } from 'vue' import App from './App.vue' import mitt from 'mitt'; const emitter = mitt(); const app = createApp(App); app.config.globalProperties.emitter = emitter; app.mount('#app');
Pancarkan acaratoggle-sidebartogol-bar sisi dengan beberapa muatan dalam pengepala:
toggle
Terima acara dengan muatan di bar sisi:
Bagi mereka yang menggunakan API gubahan, mereka boleh menggunakanemitterpemancar seperti berikut:
Pada Vue.js versi 3, anda boleh menggunakan perpustakaan atau fungsi pihak ketiga yang ditulis dalam corak pengaturcaraan penerbit-pelanggan (konsep PubSub).
event.js
index.js
Seperti yang dicadangkan dalam dokumentasirasmi, anda boleh menggunakan perpustakaanmittuntuk menghantar acara antara komponen, dengan mengandaikan kami mempunyai bar sisi dan
pengepala yang mengandungi butang untuk menutup/membuka bar sisi, kami memerlukan Butang itu untuk togol sifat tertentu dalam komponen bar sisi:
Import perpustakaan dalam main.js dan buat contoh pemancar ini dan takrifkannya sebagaiharta global:
Pemasangan:
Penggunaan:
Pancarkan acara
toggle-sidebar
togol-bar sisi dengan beberapa muatan dalam pengepala:Terima acara dengan muatan di bar sisi:
Bagi mereka yang menggunakan API gubahan, mereka boleh menggunakan
emitter
pemancar seperti berikut:Buat fail src/composables/useEmitter.js
Dari situ, anda boleh menggunakan
useRouter: Gunakan API Gabungan Anda juga boleh mendapat manfaat daripada API gubahan baharu dan menentukan bas acara boleh gubah:useEmitter
,就像使用useRouter
useEmitter seperti yang anda lakukaneventBus.js
Lakukan perkara berikut dalam komponen A: Dalam komponen B: