用途:为 OneKey 项目提供 Jotai 状态管理的统一规范,在涉及 atoms、全局状态、功能状态或 context atoms 时使用。
主要能力与结构要求:
- 全局状态原子:位于 packages/kit-bg/src/states/jotai/atoms/,用于应用级持久状态,如全局设置、账户状态、硬件状态、货币等;使用 globalAtom 与 EAtomNames 标准化,示例文件有 settings.ts、account.ts、hardware.ts、currency.ts。
- 功能级状态原子:位于 packages/kit/src/states/jotai/contexts/[feature_name]/atoms.ts,用于功能内共享状态;使用 createJotaiContext 提供的 contextAtom 保持一致。目录结构为 atoms.ts(状态定义)、actions.ts(状态操作)、index.ts(导出)。
禁止模式:不得在 packages/kit/src/views/ 下创建 atom 目录;不得在组件目录中创建独立 atom 文件;不得在无架构理由时混用 globalAtom 与 contextAtom。
选择准则:需要跨应用重启持久化、跨多个主要功能使用或影响整个应用(设置、认证等)时用 globalAtom;仅属于某功能或模块、临时或会话级、在功能相关组件间共享时用 contextAtom。项目仅使用这两种原子模式,不得自定义其他模式或在既有结构外使用普通 Jotai 原子。
使用方式:组件中通过 jotai 的 useAtom、useAtomValue、useSetAtom 读写原子;全局原子从 @onekeyhq/kit-bg/src/states/jotai/atoms 导入。创建全局原子使用 globalAtom 并指定 name、initialValue、persist;创建上下文原子使用 createJotaiContext 导出的 contextAtom 与 useContextAtom。
限制:资料未提供安装命令、版本要求、测试方式或性能数据,暂未提供。