跳到主要内容

WorkingTreeResource

type WorkingTreeResource = Readonly<WorkingTreeAsyncStates> & WorkingTreeCommands;

Defined in: use-working-tree.ts:42

useWorkingTree 在当前 render 返回的工作树入口。

Remarks​

十二个状态字段与核心的 WorkingTreeAsyncStates 一一对应,取值就是普通只读值,可以直接 解构。十二个方法的签名与插件包 WorkingTreeManager(switchBranch 那一个是 VersionManager) 上的同名方法完全一致 —— 入参与返回值用的都是 @aiao/rxdb-plugin-working-tree 那一份类型, 本包不重定义(tri-framework-api.md §1)。

方法引用稳定(同一个库跨 render 复用同一组闭包),因此可以安全地放进 useEffect / useMemo 的依赖数组;状态字段则随每一次相位变化产生新对象,这正是重渲染的触发源。

三端等价实现:Angular useWorkingTree()(Signal)、Vue useWorkingTree() (ComputedRef),字段名、方法名与语义完全一致,只是容器形态不同。

restore() 的四个被拒成因走返回值而不是异常,restoreState 因此也没有 empty: 「被拒」与「一条都没恢复」都是结果,不是「没有结果」。restoreSessionState 的空则只有一个 含义 —— 当前分支没有未结束的恢复会话;conflicted 的会话照样不是空,它仍占着唯一索引、 仍拦着下一次恢复。

switchBranch(branchId, options?) 的 WorkingTreeSwitchBranchOptions 由 T123 接进来: 不传第二参时与今天逐字节一致(无条件切换),{ requireClean: true } 在工作树非空时抛 WorkingTreeDirtyError —— 被拒不是返回值,因为那一刻分支根本没切。