Claude Code 源码文档 - 状态管理与上下文
版本: 2.1.88 | 源码路径:
src/state/,src/context/
1. 状态管理 (State)
文件结构
| 文件 | 职责 |
|---|---|
AppStateStore.ts | 应用状态存储(Zustand 风格) |
AppState.tsx | React Provider 封装 |
store.ts | createStore 工厂函数 |
onChangeAppState.ts | 状态变更监听 |
selectors.ts | 状态选择器 |
teammateViewHelpers.ts | 协作者视图辅助 |
AppState 核心状态
AppState 存储整个应用的运行时状态:
- 当前对话消息
- 工具执行状态
- 权限模式
- 模型选择
- 成本追踪
- 会话信息
状态管理模式
使用 createStore() 创建响应式 store,配合 React Context 提供给组件树。
2. 上下文 (Context)
React Context 提供跨组件共享状态:
| 文件 | Context | 用途 |
|---|---|---|
mailbox.tsx | MailboxProvider | 消息邮箱 |
notifications.tsx | NotificationContext | 通知系统 |
modalContext.tsx | ModalContext | 模态对话框 |
overlayContext.tsx | OverlayContext | 覆盖层 |
promptOverlayContext.tsx | PromptOverlayContext | 提示覆盖层 |
QueuedMessageContext.tsx | QueuedMessageContext | 排队消息 |
stats.tsx | StatsContext | 统计信息 |
voice.tsx | VoiceContext | 语音功能 |
fpsMetrics.tsx | FPSMetrics | FPS 性能指标 |