该技能面向 Angular 21 DDD 项目中的 NgRx Signals Store 开发,提供项目特定的实现规范与快速参考,当代码涉及 signalStore、withEntities、rxMethod、patchState 等内容时激活。
用途:统一项目内 Store 的组织方式、状态更新方法与异步处理模式,减少实现分歧。
主要能力与关键规则:
- Store 位置:src/app/features/{domain}/data/state/{domain}-store.ts,参考实现为 src/app/features/tasks/data/state/task-store.ts。
- 所有 Store 使用 signalStore({ providedIn: 'root' })。
- 组织顺序为 withState → withEntities → withComputed → withMethods。
- 异步操作使用 rxMethod 结合 tapResponse。
- 所有状态更新使用 patchState,禁止直接修改状态。
- 状态中始终包含 loading: boolean 与 error: string | null。
- 实体操作使用 setAllEntities、addEntity、updateEntity、removeEntity。
- tapResponse 应从 @ngrx/operators 导入,而非 @ngrx/component-store。
使用方式:当代码涉及上述信号 Store 相关 API 时技能自动激活,并按快速参考规则应用;完整 Store 模式需阅读 .github/instructions/ngrx-signals.instructions.md,Store 测试需阅读 .github/instructions/ngrx-signals-testing.instructions.md。
适用场景:Angular 21 项目中使用 NgRx Signals Store 的领域数据状态管理、实体集合操作与异步流程开发。
限制:该技能为项目特定规范,资料未提供安装命令、配置步骤及独立运行方式;其规则依赖项目内说明文件与参考实现,缺失内容暂未提供。