Bus d'événements Vue.js 3
P粉905144514
2023-08-24 18:08:45
<p>Comment créer un bus d'événements dans Vue 3 ? </p>
<heure />
<p>Dans Vue 2, c'est : </p>
<pre class="brush:js;toolbar:false;">export const bus = new Vue();
≪/pré>
<pre class="brush:js;toolbar:false;">bus.$on(...)
bus.$emit(...)
≪/pré>
<heure />
<p>Dans Vue 3, <code>Vue</code> n'est plus un constructeur, et <code>Vue.createApp({});</code> renvoie un sans <code>$ on< ;/code> code objet> et <code>$emit</code> </p>
Sur Vue.js version 3, vous pouvez utiliser des bibliothèques tierces ou des fonctions écrites dans le modèle de programmation éditeur-abonné (concept PubSub).
événement.js
index.js
Comme suggéré dans la documentation officielle, vous pouvez utiliser la bibliothèque mitt pour répartir les événements entre les composants, en supposant que nous ayons une barre latérale et un
header qui contient un bouton pour fermer/ouvrir la barre latérale, nous avons besoin de ce bouton pour basculez certaines propriétés dans le composant de la barre latérale :
Importez la bibliothèque dans main.js et créez une instance de cet émetteur et définissez-la comme une propriété globale :
Installation :
Utilisation :
Émettez un événement
toggle-sidebar
toggle-sidebar avec une charge utile dans l'en-tête :Recevoir des événements avec la charge utile dans la barre latérale :
Pour ceux qui utilisent l'API de composition, ils peuvent utiliser le
emitter
émetteur comme suit :Créer le fichier src/composables/useEmitter.js
À partir de là, vous pouvez utiliser
useRouter :useEmitter
,就像使用useRouter
useEmitter comme vous le feriez aveceventBus.js