SuperAPI AI 工具集

xstate-react

编程与开发

查看项目

更新于 10-16 03:16

技能介绍

用途:在 React + TypeScript 项目中用 xState v5 的 actor 模型、状态机与 statechart 管理复杂应用状态。适用于多步骤表单、向导、结账流程等复杂 UI 流转,状态转移多、边界情况多、需要可视化与可校验的逻辑,以及含异步操作与错误处理、具有 loading/error/success/idle 等多种模式的场景。简单开关、计数器、单组件表单状态或简单 CRUD 加载状态,建议使用 useState、Zustand 等更简单的方案。

主要能力:提供 useMachine 在组件生命周期内创建并运行机器,useActor 订阅组件外创建的 actor,useSelector 进行精选状态订阅以减少重渲染。支持通过 types 属性为 context 与事件做 TypeScript 类型定义,也支持用 setup() 类型安全地定义 action、guard、actor 与 delay。核心概念包括状态与转移、context 扩展状态、assign 更新、entry/exit 动作,以及 invoke 配合 fromPromise 处理异步操作。

使用方式:机器定义使用 createMachine({ id, initial, states, context });组件中通过 const [state, send] = useMachine(machine) 获取状态与发送事件,用 state.matches('loading') 或 state.value 检查状态,用 send({ type: 'EVENT_NAME' }) 发送事件,用 state.context 读取数据,用 assign 更新 context。React hooks 必须在客户端组件中使用,需加 "use client" 指令。

限制与注意:不要把整个 snapshot 存入 React state,不要直接修改 context,UI 中应处理所有可能状态。资料未提供收费、价格、平台等信息。更多 invoke/spawn、并行与历史状态、actor 通信、测试策略等细节,可参考 Context7 MCP(库 ID /statelyai/xstate)及 ./references/patterns.md。