github: https://github.com/Misaka-0x447f/createTypedEvent
npm: https://www.npmjs.com/package/@misaka17535/create-typed-event
相比其他事件库,首先是带类型,让用户能知道 payload 的类型;其次是函数式,不再需要手敲事件名。然后是 sub 函数自动返回 unsub 函数,不再必须传入 sub 时的 listener:
const misakaStateChange = createTypedEvent<{ selfDestructionInProgress: boolean }>()
// returns unsub function without defining handler outside
const unsub = misakaStateChange.sub((payload) => console.log(payload))
misakaStateChange.dispatch({selfDestructionInProgress: true})
unsub()
>>> { selfDestructionInProgress: true }
另外还自带 react hook ,完美桥接 react 响应式变量,如果你想你也可以轻松写出其他响应式框架的版本。
是新包,但是已经在各种内部项目里用了两三年了,用过的同事都说好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.