Agent Skills
返回列表
💻

Angular UI 模式

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/angular-ui-patterns。

技能介绍

为什么需要一套 UI 模式

Angular 17+ 的控制流(@if、@for、@defer)和 Signal 让状态表达更清晰,但团队仍容易在同一屏里同时出现骨架、旧数据和微调器,或在请求失败时静默吞错。这类问题不会靠「多写几个 *ngIf」解决,需要的是加载、错误、空态、按钮反馈之间的一致决策。

技能覆盖什么

本技能把日常交付拆成可执行的规则与模式:

  • 加载状态:黄金法则是「仅当没有可展示数据时才显示加载」;并给出骨架屏 vs 微调器的对照(已知布局用骨架、按钮/模态操作用微调器)。
  • 控制流:条件渲染、@for 配合 track、@defer 做渐进披露。
  • 错误处理:分层处理,永不静默吞没错误;配合错误状态组件模式。
  • 按钮与表单:异步期间始终禁用触发器,必要时在按钮上显示加载;表单需兼顾加载与校验反馈。
  • 空状态:每个列表/集合必须有上下文相关的空态(含 @empty 块思路)。
  • 反模式清单与UI 状态检查清单(错误、加载、空态、乐观更新回滚、可访问性等),便于 Code Review 或上线前自检。

与 angular、angular-state-management(Signal 存状态)、testing-patterns(覆盖各 UI 状态)可组合使用。

注意点

这是模式与检查清单,不是组件库:具体骨架、Toast、对话框仍要按项目设计系统实现。乐观更新必须在失败时显式回滚;@defer 解决的是按需加载,不能替代错误与空态设计。

使用场景

  • 列表页在已有缓存数据时仍全屏转圈,需按「仅无数据时显示加载」调整 Signal/异步流与 `@if` 分支。
  • 新功能上线前,用文档中的 UI 状态检查清单逐项核对错误展示、空态、`@empty` 与按钮异步禁用。
  • 仪表盘首屏组件过重,用 `@defer` 分块加载,并为每块定义错误态与「部分数据可用」的降级展示。
  • 接口失败被 `catch` 后界面仍像成功,需补分层错误组件、表单字段关联错误与提交期按钮加载/禁用。

适合人员

  • 维护 Angular 业务页(列表、详情、表单)的前端工程师,想统一骨架屏与微调器的选用规则。
  • 正在把 `*ngIf`/旧语法迁到 `@if`、`@for`、`@defer` 的开发者,需要空态与 `@empty` 的团队约定。
  • 在 Code Review 里反复看到静默吞错或乐观更新不回滚的 Angular Tech Lead,想用检查清单约束交付质量。
  • 负责组件或 E2E 测试的工程师,需要按加载、错误、空态、按钮状态设计可重复的测试场景。