在 vue.js 2 中使用 mitt,您可以跨組件層級進行通信和廣播事件。1. 安裝 mitt:npm install mitt –save。2. 創(chuàng)建 mitt 實例:import mitt from ‘mitt’; const emitter = mitt();。3. 在組件中使用 mitt: 發(fā)射事件:emitter.emit(‘event-name’, data);。 監(jiān)聽事件:emitter.on(‘event-name’, (data) => {});。
如何在 Vue.js 2 中使用 mitt
什么是 mitt?
Mitt 是一個輕量級的事件總線庫,允許 Vue.js 組件跨層級通信和事件廣播。
如何使用 mitt
要使用 mitt,請按照以下步驟操作:
安裝 mitt:
npm install mitt --save
登錄后復(fù)制
創(chuàng)建 mitt 實例:
import mitt from 'mitt'; const emitter = mitt();
登錄后復(fù)制
在組件中使用 mitt:
發(fā)射事件:
emitter.emit('event-name', data);
登錄后復(fù)制
監(jiān)聽事件:
emitter.on('event-name', (data) => { // 處理事件 });
登錄后復(fù)制
實例
假設(shè)您有一個父組件和兩個子組件:
父組件:
<template><child1></child1><child2></child2></template><script> import mitt from 'mitt'; import Child1 from './Child1.vue'; import Child2 from './Child2.vue'; export default { components: { Child1, Child2 }, data() { return { emitter: mitt(), }; }, methods: { emitEvent() { this.emitter.emit('custom-event', { message: 'Hello world!' }); }, }, }; </script>
登錄后復(fù)制
子組件 1:
<template><button>Trigger Event</button> </template><script> import mitt from 'mitt'; export default { data() { return { emitter: mitt(), }; }, methods: { handleEvent() { this.emitter.emit('custom-event', { message: 'Triggered from Child 1!' }); }, }, }; </script>
登錄后復(fù)制
子組件 2:
<template><p>{{ message }}</p> </template><script> import mitt from 'mitt'; export default { data() { return { emitter: mitt(), message: '', }; }, created() { this.emitter.on('custom-event', (data) => { this.message = data.message; }); }, }; </script>
登錄后復(fù)制
在這個示例中,父組件創(chuàng)建了 mitt 實例并將其傳遞給子組件。子組件 1 使用 mitt 發(fā)射事件,而子組件 2 使用 mitt 監(jiān)聽事件并更新其消息。