Event bus для React
Event Bus или шина событий – это шаблон проектирования, который используется для общения между компонентами, в то время как сами компоненты остаются слабо связанными.
Компонент может отправить сообщение в шину событий, не зная конечного получателя, как и сам получатель может не знать откуда пришло сообщение. Одним из вариантов использования шины событий – организация логирования в приложении.
В своем блоге Доу-Чи Лиу показал, как с нуля сделать шину событий на TypeScript и использовать в React компонентах для отправки аналитики.
export default function Index() {
useEffect(() => {
const unsubscribeOnMapIdle = mapEventChannel.on('onMapIdle', () => {
logUserInteraction('on map idle.')
})
return () => {
unsubscribeOnMapIdle()
}
}, [])
// …
}
dawchihliou.github.io/article…or-react