Repolode
statelyai

statelyai/xstate

零依赖的 JavaScript/TypeScript 库,用状态机、状态图和 Actor 管理复杂的应用与工作流逻辑。

可替代:ReduxZustand

Star
30,412
Fork
1,410
未关闭 Issue
123
最近提交
20小时前

这是什么?

XState 是一个面向 JavaScript 和 TypeScript 的状态管理与编排库,可用于前端和后端代码。它把应用逻辑建模为状态机、状态图和 Actor,让状态转换、副作用和允许的事件都有明确声明,而不是散落在各处的条件判断中。

核心包 xstate 提供状态机定义、运行机器逻辑并向订阅者暴露快照的 Actor,同时支持层级状态、并行状态和历史状态。可视化编辑器 Stately Studio 可用于设计状态机,并导出为 XState v5 代码。配套包提供 React、Vue、Svelte 和 Solid 的绑定。

对于更简单的场景,独立的 @xstate/store 包提供基于事件的小型状态仓库,支持响应式 atom 和出色的 TypeScript 类型推断,可以单独使用,也可以与核心库配合。

核心功能

  • 01使用层级状态、并行状态和历史状态定义状态机与状态图。
  • 02以 Actor 运行逻辑,并向订阅者暴露状态快照。
  • 03没有运行时依赖。
  • 04通过 Stately Studio 进行可视化设计并导出代码。
  • 05提供 React、Vue、Svelte 和 Solid 的框架绑定。
  • 06提供独立的轻量级 @xstate/store,用于基于事件的状态管理。

适用场景

  • 管理表单、向导或结账等多步骤界面流程。
  • 编排长时间运行的后端工作流和后台任务。
  • 让复杂组件的状态转换明确且便于测试。
  • 用小型事件驱动仓库替代 Redux 或 Zustand 等方案。

快速上手

  1. 1

    使用 npm 安装 xstate 包

    npm install xstate

收录于专题

标签

常见问题

xstate 是什么?
零依赖的 JavaScript/TypeScript 库,用状态机、状态图和 Actor 管理复杂的应用与工作流逻辑。 XState 是一个面向 JavaScript 和 TypeScript 的状态管理与编排库,可用于前端和后端代码。它把应用逻辑建模为状态机、状态图和 Actor,让状态转换、副作用和允许的事件都有明确声明,而不是散落在各处的条件判断中。
xstate 可以免费使用吗?用的什么许可证?
xstate 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
xstate 还在维护吗?
活跃维护中。xstate 最近一次提交是在 2026年11月6日。
xstate 适合用来做什么?
管理表单、向导或结账等多步骤界面流程。 编排长时间运行的后端工作流和后台任务。 让复杂组件的状态转换明确且便于测试。 用小型事件驱动仓库替代 Redux 或 Zustand 等方案。
xstate 怎么安装和运行?
使用 npm 安装 xstate 包: npm install xstate
在哪里获取 xstate?
源代码和安装说明在 GitHub 上:https://github.com/statelyai/xstate

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目