跳转到内容

从 Jotai 迁移

本页适合已有 atom 体系,希望减少原子拆分负担、同时保留细粒度订阅能力的项目。

  • atom 数量持续膨胀,边界维护成本上升。
  • 想保留原子化订阅,但改成结构化状态建模。
  • 需要跨框架共享状态模型。
JotaiIO 对应说明
atom(value)io(value)原子值一一对应。
atom((get) => ...)derived([...], compute)派生语义一致。
writable atom动作函数 + set/commit读写职责拆分更清晰。
useAtomuseIO读写可分离。
import { io } from '@iostore/store';
export const count = io(0);
import { derived } from '@iostore/store/derived';
export const double = derived([count], (v) => v * 2);
export const inc = () => count.set((v) => v + 1);
import { useIO } from '@iostore/react';
function Counter() {
const value = useIO(count);
return <button onClick={inc}>{value}</button>;
}
  • 迁移后仍按“全局 atom 分发”组织,没利用树路径能力。
  • 把复杂读写逻辑都放在组件内,缺少动作边界。
  • 派生计算未抽离到 derived,导致重复逻辑。
  • 核心 atom 已迁移为 Unit 或树路径 Unit。
  • 可写派生逻辑已收敛为动作函数。
  • 关键派生计算已统一 derived 管理。