emitter-master
Support for offline publishing and subscribing events
Usage
import { Emitter } from "emitter-master"
Emitter.sender("A<->B", 123)
const ret = await Emitter.receiver("A<->B" )
Emitter.receiver("A<->B",function(val){
console.log(val)
})
Emitter.clear("A<->B")
function handle({event_name, data}){
if(event_name === "A->B"){
...
}else if(event_name === "B->C"){
...
}else{
...
}
}
Emitter.receiver(["A->B", "B->C"], handle)
Emitter.clear(["A->B", "B->C"], handle)
sender has an alias called trigger
receiver has an alias called listener
once indicates that the system listens only once
Depending on your scenario, the name you use will provide better semantics.
Recommendation specifications in vue and react
The first thing to be clear is that the library is not framework-related, but many front ends now use vue and react to build websites, so here is my recommendation
**Suggestion 1:**Define the event_name.ts file to store the event name. This file only defines the event name and the comment of the event name. Note that each event name must have A comment, otherwise it is meaningless. The form 'A<->B' indicates that A and B send data to each other. Here is an example
const CompA_CompB = "CompA->CompB"
export {
CompA_CompB
}
Suggestion 2: For non-component-to-component communication that still explicitly specifies the source and destination, such as when I send to component CompA in Axios encapsulation, I can name it:Axios->CompA
**Suggestion 3:**Remember to clear events before the component uninstalls
Example
import {Emitter} from "emitter-master"
Emitter.sender( "a-b" , true);
( async function ()
{
const ret = await Emitter.receiver( "a-b" );
console.log("ret")
console.log( ret );
} )();