Maison >interface Web >Voir.js >Comment installer et utiliser Mitt pour transmettre la valeur dans le composant Brother Vue3
Tout d’abord, il est assez petit, seulement 200 octets.
Deuxièmement, il prend en charge la surveillance de tous les événements et la suppression des lots.
Il ne repose pas non plus sur les instances Vue et peut être utilisé dans tous les frameworks React ou Vue, et même les projets jQuery peuvent utiliser le même ensemble de bibliothèques.
npm install --save mitt
1 Enregistrez-le et montez-le sur le
import { createApp } from 'vue' import App from './App.vue' import mitt from 'mitt' import router from "./router"; const app = createApp(App) // vue3挂载到全局 app.config.globalProperties.$mitt = mitt(); app.use(router).mount('#app')
global dans main.tscolor{#ef2d26}{main.ts}main. .ts 2. Utilisez submitcolor{#ef2d26}{emit}emit dans le composant home.vue pour envoyer des informations
<template> <div class="home-container"> <p>这里是home组件</p> <button @click="sendMitt">$mitt发送数据</button> <About></About> </div> </template> <script lang="ts" setup> import { getCurrentInstance, ref, ComponentInternalInstance } from 'vue'; import About from '../about/about.vue' const { appContext } = getCurrentInstance() as ComponentInternalInstance; const money = ref<number>(98); const sendMitt = () => { appContext.config.globalProperties.$mitt.emit('moneyEvent', money.value += 2); } </script> <style lang="less"> </style>
2. Utilisez oncolor{#ef2d26}{on}on dans le composant about.vue pour recevoir des informations.
<template> <div class="about-container"> <p>这里是about组件</p> <p>接收到的数据:{{ amount }}</p> </div> </template> <script lang="ts" setup> import { ref, getCurrentInstance, ComponentInternalInstance, onBeforeMount, onMounted } from 'vue'; const amount = ref(0); const { appContext } = getCurrentInstance() as ComponentInternalInstance; onMounted(() => { appContext.config.globalProperties.$mitt.on('moneyEvent', (res: number) => { amount.value = res; }) }) onBeforeMount(() => { appContext.config.globalProperties.$mitt.off('moneyEvent'); }); </script> <style lang="less"> .about-container { background-color: #f0f0f0; } </style>
1. Créez un nouveau fichier bus.tscolor{#ef2d26}{bus.ts}bus.ts
import mitt from "mitt"; const emiter = mitt(); export default emiter;
2. Introduisez et utilisez submitcolor{#ef2d26 dans le composant home.vue }{emit}emit envoie des informations
<template> <div class="home-container"> <p>这里是home组件</p> <button @click="sendMitt">$mitt发送数据</button> <About></About> </div> </template> <script lang="ts" setup> import { ref } from 'vue'; import About from '../about/about.vue' import emitter from '../../utils/bus' const money = ref<number>(98); const sendMitt = () => { emitter.emit('moneyEvent', money.value += 2); } </script> <style lang="less"> </style>
2 Introduisez et utilisez oncolor{#ef2d26}{on}on dans le composant about.vue pour recevoir des informations
<template> <div class="about-container"> <p>这里是about组件</p> <p>接收到的数据:{{ amount }}</p> </div> </template> <script lang="ts" setup> import { ref, onBeforeMount, onMounted } from 'vue'; import emitter from '../../utils/bus' const amount = ref(0); onMounted(() => { emitter.on('moneyEvent', (res: any) => { amount.value = res; }); }) onBeforeMount(() => { emitter.off('moneyEvent'); }); </script> <style lang="less"> .about-container { background-color: #f0f0f0; } </style>.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!