AI 辅助前端空状态体验治理:从无数据页面到可行动引导
前言
前端页面并不总是展示丰富数据。新用户刚进入系统、搜索没有结果、权限范围为空、接口返回空数组、筛选条件过窄时,页面都会进入空状态。很多团队会把空状态简单处理成一张插画和一句"暂无数据",但用户真正需要的是知道为什么为空,以及下一步可以做什么。
AI 可以帮助前端团队治理空状态体验。它适合从页面结构、业务场景、用户角色和操作路径中识别遗漏的空状态,并生成更清晰的提示文案和行动引导。本文分享一套 AI 辅助前端空状态治理的实践方法。
一、空状态不是"没有内容"这么简单
空状态通常分为几类:
- 首次使用:用户还没有创建任何数据。
- 搜索无结果:关键词或筛选条件没有匹配记录。
- 权限为空:用户没有可查看的数据范围。
- 异常兜底:接口失败后暂时无法展示数据。
- 业务完成:任务已全部处理完,没有待办项。
这些状态背后的用户心理并不一样。首次使用需要引导创建,搜索无结果需要调整条件,权限为空需要联系管理员,任务完成则可以给出正向反馈。
二、让 AI 先识别页面空状态场景
可以把页面说明、接口字段和用户角色输入给 AI,让它先生成空状态清单:
md
你是一名前端体验评审助手。
请根据页面说明,找出可能出现的空状态场景。
要求:
1. 区分首次使用、搜索无结果、权限为空、接口异常和任务完成。
2. 每个场景给出用户看到的提示文案。
3. 每个场景给出一个可执行的下一步动作。
4. 不要编造页面不存在的功能。
AI 输出的清单可以进入需求评审,帮助产品、设计和前端提前确认页面在"没有数据"时应该如何表现。
三、设计统一的空状态数据结构
为了避免每个页面各写各的空状态,可以先定义一个统一结构:
ts
type EmptyStateConfig = {
scene: 'first-use' | 'no-result' | 'no-permission' | 'error' | 'completed';
title: string;
description: string;
actionText?: string;
actionType?: 'create' | 'reset-filter' | 'contact' | 'retry' | 'none';
illustration?: string;
};
这样做的好处是:
- 文案结构统一。
- 行动按钮统一。
- 埋点字段统一。
- 后续可以用 AI 批量检查配置是否缺失。
四、封装一个可复用的 EmptyState 组件
以 Vue 为例,可以封装基础组件:
vue
<template>
<section class="empty-state">
<img v-if="config.illustration" :src="config.illustration" alt="" />
<h3>{{ config.title }}</h3>
<p>{{ config.description }}</p>
<button v-if="config.actionText" @click="$emit('action', config.actionType)">
{{ config.actionText }}
</button>
</section>
</template>
<script setup lang="ts">
defineProps<{
config: EmptyStateConfig;
}>();
defineEmits<{
action: [type: EmptyStateConfig['actionType']];
}>();
</script>
页面只需要根据数据状态选择配置:
ts
function resolveEmptyState(params: {
loading: boolean;
error: boolean;
keyword?: string;
hasPermission: boolean;
total: number;
}): EmptyStateConfig | null {
if (params.loading) return null;
if (params.error) {
return {
scene: 'error',
title: '数据暂时加载失败',
description: '请稍后重试,或检查网络连接。',
actionText: '重新加载',
actionType: 'retry',
};
}
if (!params.hasPermission) {
return {
scene: 'no-permission',
title: '暂无可查看的数据',
description: '你当前没有该模块的数据权限。',
actionText: '联系管理员',
actionType: 'contact',
};
}
if (params.total === 0 && params.keyword) {
return {
scene: 'no-result',
title: '没有找到匹配结果',
description: '可以尝试更换关键词或清空筛选条件。',
actionText: '清空筛选',
actionType: 'reset-filter',
};
}
if (params.total === 0) {
return {
scene: 'first-use',
title: '还没有创建任何内容',
description: '创建第一条数据后,这里会展示列表内容。',
actionText: '立即创建',
actionType: 'create',
};
}
return null;
}
五、用 AI 做空状态质量检查
当页面越来越多时,可以让 AI 根据组件配置和页面状态做检查:
- 是否只写了"暂无数据"。
- 是否缺少下一步行动。
- 是否把权限为空误写成搜索无结果。
- 是否没有区分接口失败和真实无数据。
- 是否存在过长、含糊或有责备感的文案。
可以把检查结果定义为:
ts
type EmptyStateFinding = {
page: string;
scene: string;
problem: string;
suggestion: string;
severity: 'low' | 'medium' | 'high';
};
这些检查可以在设计评审、代码评审或上线前走一遍,减少线上体验遗漏。
六、注意事项
落地时需要注意:
- 不要把所有空状态都做成强行动按钮,有些完成态只需要轻提示。
- 不要在权限为空时暴露用户不应该知道的数据范围。
- 不要用 AI 编造业务入口,必须以真实产品能力为准。
- 空状态插画要服务理解,不要喧宾夺主。
- 移动端要注意按钮层级和文案长度。
总结
AI 辅助前端空状态治理的核心,是把"没有数据"拆成不同业务场景,再为每个场景提供可理解、可行动的提示。
建议从高频列表页开始,梳理空状态类型,统一配置结构和组件展示,再用 AI 做批量检查。这样用户在遇到空页面时,不再只是看到"暂无数据",而是能清楚知道下一步该做什么。