Rumah >hujung hadapan web >View.js >Cara memasang dan menggunakan mitt untuk menghantar nilai dalam komponen saudara Vue3
Pertama sekali, ia cukup kecil, hanya 200bait.
Kedua, ia menyokong pemantauan semua acara dan penyingkiran kelompok.
Ia juga tidak bergantung pada contoh Vue dan boleh digunakan merentas rangka kerja atau Vue, malah projek jQuery boleh menggunakan set perpustakaan yang sama.
npm install --save mitt
1 } Daftar dalam {main.ts}main.ts dan lekapkannya ke
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 2. Gunakan emitcolor{#ef2d26}{emit}emit dalam komponen home.vue untuk menghantar maklumat
<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 Gunakan oncolor{#ef2d26}{on}on dalam komponen about.vue untuk menerima maklumat
<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 Cipta fail bas.tscolor{#ef2d26}{bus.ts}bus.ts
import mitt from "mitt"; const emiter = mitt(); export default emiter;
2 gunakannya dalam komponen home.vue emitcolor{#ef2d26}{emit}emit menghantar maklumat
<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. Perkenalkan dan gunakan oncolor{#ef2d26}{on}on dalam about.vue komponen untuk menerima maklumat
<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>
Atas ialah kandungan terperinci Cara memasang dan menggunakan mitt untuk menghantar nilai dalam komponen saudara Vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!