参考

支持矩阵

原生 store、外部 adapter、middleware 与 Yjs 的维护组合。

“支持”表示有测试覆盖,并作为维护 contract;“有限”表示保证比周围功能暗示的范围更窄。未列出的组合不应被推断为可用。

原生 store

组合状态说明
单 store,local支持默认同步权威
原生 slices,local支持namespace 原生状态
单 store 或 slices,shared main支持依赖 patch stream
单 store 或 slices,shared client支持方法变为 async proxy
Client 直接 setState()/apply()不支持Client 是镜像
关闭 patch 的共享模式不支持同步依赖 patch

外部 adapter

所有 adapter 都绑定 whole store,均不支持 slices mode。

AdapterLocalShared main/client说明
Zustand支持支持client Zustand 直接写入被拒绝
MobX支持支持client 外部写入由集成定义
Pinia支持支持client 外部写入由集成定义
Jotai支持支持client atom 直接写入被拒绝
Redux Toolkit支持不支持仅本地 whole-store binding
Valtio支持支持client proxy 写入恢复为权威 snapshot
XState支持不支持通过 actor event 更新,setState() 被阻止

Adapter 的 shared support 只覆盖远程 Coaction method execution,不会让任意 out-of-band external write 自动成为统一跨 adapter contract。

Middleware 与协作

集成LocalShared mainShared client
Logger支持支持可见性有限
Persist支持支持不支持
History支持支持不支持
Yjs支持支持不支持

修改、rehydrate、time-travel 或 merge 状态的集成应放在 authority。

框架 selector 边界

框架生成的 selector map 来自初始化期间已知 descriptor。已知 key 获得稳定 selector;新增动态 path 不会扩展 map。把动态值放在已声明 record 中并使用显式 selector。

React 的 useStore.auto() 返回 selector function,而非直接读取字段:

const selectors = useStore.auto();
const count = useStore(selectors.count);

共享部署边界

每个 authority 及其连接的 client 必须使用相同 Coaction major 与兼容 wire protocol。即使 TypeScript surface 看似兼容,混合 major 的 Worker、SharedWorker 与 custom transport 仍不受支持。

本页目录