⚛️ Reactive 是一个为 JavaScript 应用提供状态管理功能的库,直观、灵活、使用 TypeScript 编写。
这里是一个在 React 应用程序中使用 Reactive 的简单示例。
你可以在 CodeSandbox 上在线尝试 Reactive。
Reactive 采用了读写分离的策略,通过 store.mutate 对象提供了一种更加直观的变更状态的方式。当需要改变状态时,直接修改 store.mutate
对象即可!
对于消费,它通过 React 部分的 store.useSnapshot 和纯 JavaScript 部分的 store.snapshot 提供了一个访问状态的简单方法,以确保安全。这种方法生成的非扩展快照状态防止了意外修改。
此外,Reactive 还提供了一个可选的渲染优化功能。
你可以使用 selector
来指定你想要选取的状态,这将只在指定的状态改变时才重新渲染。如果不指定,默认情况下,使用了完整快照的组件会在状态的任何部分发生改变时,触发组件的重新渲染。
关于 selector
API 的设计,以及为什么放弃「自动依赖收集」的方案,可参考 proxy-compare
的 issue#65。
关于 selector
的一个更全的示例: