用途:为 React 组件开发提供加载、错误、空状态与异步操作的一致模式,适用于构建 UI 组件、处理异步数据和管理 UI 状态。
核心原则:不展示陈旧 UI;仅在真正加载时显示加载指示;始终向用户暴露错误;乐观更新让界面即时响应;渐进式披露内容;优雅降级,部分数据优于无数据。
加载状态:黄金法则是仅当没有数据可显示时才显示加载指示。决策顺序为:有错误则显示错误与重试;加载中且无数据则显示加载(骨架或旋转器);有数据且有内容则展示;有数据但为空则显示空状态。已知内容形状、列表/卡片布局、初始页面加载用骨架屏;未知形状、模态操作、按钮提交、内联操作可用旋转器。
错误处理:层级为字段级内联错误、可恢复错误的 Toast、页面级错误横幅、不可恢复的整屏错误。关键点是绝不静默吞掉错误,mutation 必须提供 onError 并向用户反馈。
按钮与表单:异步操作期间必须禁用触发按钮并显示加载状态,防止重复提交。表单提交前校验,失败时提示用户修正。
空状态:每个列表/集合都必须有空状态,并可根据场景区分搜索无结果与尚无条目,后者可提供创建操作。
反模式:有数据时仍显示旋转器会导致闪烁;catch 中仅 console.log 而不提示用户;提交期间按钮未禁用。
检查清单:错误状态已处理并展示;仅无数据时显示加载;集合提供空状态;异步操作禁用按钮;按钮适时显示加载;mutation 有 onError;所有用户操作有反馈。
与其他技能集成:可配合 graphql-schema 的 mutation 错误处理、testing-patterns 测试各 UI 状态、formik-patterns 应用表单提交模式。
限制:资料未提供具体安装命令、依赖版本、平台支持或收费信息。