SuperAPI AI 工具集

onyx

营销与增长

查看项目

更新于 10-15 21:39

技能介绍

用途:Onyx 是包裹在发布订阅库之上的持久化存储方案,用于实现响应式、离线优先的数据管理,提供键值存储、自动 AsyncStorage 持久化、响应式订阅与集合管理。

主要能力:通过 useOnyx hook 在组件中订阅数据;支持 selector 缩小重渲染范围;支持集合成员订阅与 mergeCollection 批量更新;配合 API.write 实现乐观更新(optimisticData、successData、failureData 三组数据)。

使用方式:状态只能从 action 文件(src/libs/actions/)修改,禁止在组件中直接调用 Onyx.merge、Onyx.set、Onyx.clear 或 API.write。常用操作包括 Onyx.merge 更新字段、Onyx.set 删除数据、useOnyx 订阅、Onyx.mergeCollection 批量更新集合。乐观更新中,optimisticData 在 API 调用前立即应用并常带 pendingAction;successData 用于清理 UI 状态;failureData 用于回滚并写入 errors。后端响应数据由 Pusher 或 HTTPS 自动应用,无需手动写入 successData/failureData。

性能与限制:应订阅具体集合成员而非整个集合;selector 需保持引用稳定,否则会绕过缓存导致多余重渲染,建议放在 src/selectors/ 或用 useMemo 包裹。避免在同一键上混用 set 与 merge,二者不批量执行可能产生竞态。完整 API 参考、初始化、缓存淘汰、Redux DevTools 等见官方 README;离线 UX 模式与决策流程见 OFFLINE.md。具体收费、平台支持等资料暂未提供。