angular-ui-patterns
现代Angular UI模式:加载状态、错误处理与数据展示。适用于构建UI组件、处理异步数据或管理组件状态。
作者
分类
开发工具安装
热度:8
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-angular-ui-patterns&locale=zh&source=copy
Angular UI Patterns
技能概述
Angular UI Patterns 提供现代 Angular 应用的 UI 状态管理最佳实践,涵盖加载状态、错误处理、空状态设计和用户交互反馈的完整解决方案。
适用场景
需要实现加载状态、错误提示、空数据展示等常见 UI 模式的组件开发场景。
从 API 获取数据、表单提交、文件上传等需要展示加载和错误状态的异步操作场景。
使用 Signal 管理响应式状态,需要正确处理 loading、error、success、empty 等状态的场景。
核心功能
提供何时使用 skeleton 或 spinner 的明确指南,避免 stale UI 闪烁问题,确保只在无数据时显示加载状态。
定义四层错误处理策略:字段级 inline error、可恢复的 toast 通知、页面级 error banner、全屏 error state。
使用 Angular 17+ 的 @if/@else、@for/@empty、@defer 等新语法实现条件渲染、列表渲染和渐进式加载。
常见问题
什么时候用 skeleton 而不是 spinner?
使用 skeleton 适用于已知内容形状的场景,如列表、卡片布局的初始页面加载。使用 spinner 适用于内容形状未知或操作范围较小的场景,如模态框内的操作、按钮提交、行内操作。
Angular @defer 如何使用?
@defer 用于延迟加载非关键内容,提升首屏加载速度。基本用法是在 @defer 块中包裹内容,可配合 @placeholder、@loading、@error 使用。常见触发方式包括 on viewport(进入视口时)、on idle(浏览器空闲时)、on timer(延迟后)。
如何防止用户重复点击提交按钮?
在异步操作期间,必须将按钮的 disabled 属性绑定为 true,并在按钮内显示 spinner 或"提交中..."文本。同时在组件中使用 signal 管理提交状态,确保在 try-finally 块中正确重置状态。