#
Use the event bus
Squide provides a built-in event bus so that modules and other parts of a modular application can communicate in a loosely coupled way.
For more details, refer to the useEventBusListener and useEventBusDispatcher reference documentation.
#
Add an event listener
Register a function that will be invoked each time the specified event is dispatched:
import { useCallback } from "react";
import { useEventBusListener } from "@squide/firefly";
const handleFoo = useCallback((data, context) => {
// Do something...
}, []);
// Listen to every "foo" events.
useEventBusListener("foo", handleFoo);
#
Add an event listener that will be invoked once
Register a function that will be invoked once, and then automatically unregisters itself:
import { useCallback } from "react";
import { useEventBusListener } from "@squide/firefly";
const handleFoo = useCallback((data, context) => {
// Do something...
}, []);
// Listen to the first "foo" event.
useEventBusListener("foo", handleFoo, { once: true };
#
Dispatch an event
import { useEventBusDispatcher } from "@squide/firefly";
const dispatch = useEventBusDispatcher();
// Dispatch a "foo" event with a "bar" payload.
dispatch("foo", "bar");