0.1.0-rc.1 • Published 6 months ago
@muxiu1997/define-emitter-composable v0.1.0-rc.1
define-emitter-composable
Creates a Vue composable function for providing or injecting a mitt event emitter.
Install
$ npm install define-emitter-composable
import defineEmitterComposable from 'define-emitter-composable'
Usage
// Creates a composable function for providing or injecting a mitt event emitter.
const useFooEmitter = defineEmitterComposable<{ bar: string, baz: number }>({ key: Symbol('bar') , throwOnNoProvider: () => new Error('No provider for bar') })
const useBarEmitter = defineEmitterComposable()
// In a Vue component setup
setup() {
const fooEmitter = useFooEmitter('provide') // Provides an emitter
fooEmitter.on('bar', (payload) => {
// Handle the event
})
// Or inject an existing event emitter
const injectedBarEmitter = useFooEmitter() // Or `useFooEmitter('inject')`
injectedFooEmitter.emit('bar', 'bar')
injectedFooEmitter.emit('baz', 123)
// If `injectDefault` or `throwOnNoProvider` options are not set, the return value may be undefined
const undefinedEmitter = useBarEmitter() // undefined
}
License
0.1.0-rc.1
6 months ago