组件/EmptyState 空态引导

EmptyState 空态引导

表示空、加载、错误等页面状态的占位视图

已验证自 0.3.4

用法

预设与操作

variant 选择预设的标题、说明与插画;primaryAction、secondaryAction 生成操作按钮。

示例加载中...

横向布局

示例加载中...

自定义插槽

variant="custom" 没有预设文案与插画,内容全部来自插槽。

示例加载中...

后台恢复状态

示例加载中...

最佳实践

  • 先选最贴近的预设再改文案:筛选无结果用 search-empty,分栏未选中用 no-selection,无权限用 permission,断网用 offline。
  • 标题说明处境并指向下一步:写「还没有自动化规则」,不写「暂无」。
  • 加载、空态与错误态在同一数据容器内切换,避免布局跳动。
  • 常规操作用 primaryAction / secondaryAction;需要自定义组合时才用 actions 插槽。
  • Dashboard 与面板内用 surface="card";表格、抽屉、卡片等已有容器的区域保持 plain。

API 参考

属性

属性名类型默认值说明
variantEmptyStateVariant'empty'预设的标题、说明与插画。
titlestring-覆盖预设标题;传空字符串隐藏。
descriptionstring-覆盖预设说明;传空字符串隐藏。
iconTxIconSource | string | null-图标源或图标 class,替换预设插画;null 隐藏图标区。
iconSizenumbersize 预设图标或 spinner 尺寸(px),默认按 size 取 28、36、44。
layout'vertical' | 'horizontal''vertical'图标与内容纵向堆叠或横向并排。
align'start' | 'center' | 'end''center'图标、文案与操作的对齐方式。
size'small' | 'medium' | 'large''medium'间距、字号与插画尺寸。
surface'plain' | 'card''plain'card 添加带边框的卡片表面。
primaryActionEmptyStateAction-生成主操作按钮,点击触发 primary。
secondaryActionEmptyStateAction-生成次操作按钮,排在主操作之前,点击触发 secondary。
actionSizeTxButtonProps['size']'sm'生成按钮的默认尺寸。
loadingbooleanfalse无自定义图标时显示 TxSpinner。

事件

事件名参数说明
primary-点击生成的主操作按钮时触发。
secondary-点击生成的次操作按钮时触发。

插槽

插槽名参数说明
icon-替换预设插画、spinner 或 icon。
title-替换标题。
description-替换说明。
actions-替换生成的主/次操作按钮。

类型

EmptyStateAction

属性名类型默认值说明
labelstring-按钮文本。
typeTxButtonProps['type']-透传给 TxButton 的色调。
variantTxButtonProps['variant']-透传给 TxButton 的视觉变体。
sizeTxButtonProps['size']-单个按钮的尺寸,未设置时取 actionSize。
disabledbooleanfalse禁用按钮;禁用时不触发对应事件。
iconstring-透传给 TxButton 的图标 class。

EmptyStateVariant 默认值

Variant默认标题默认说明插画来源
emptyNothing hereThere is nothing to show yet.内置 SVG 插画。
blank-slateStart from scratchCreate your first item to get started.内置 SVG 插画。
no-dataNo dataNo data available yet.内置 SVG 插画。
no-selectionNothing selectedSelect an item to see details.内置 SVG 插画。
search-emptyNo resultsTry a different keyword or filter.内置 SVG 插画。
loadingLoadingPlease wait a moment.内置骨架插画;loading=true 时为 spinner。
offlineYou are offlineCheck your connection and retry.内置 SVG 插画。
permissionAccess deniedYou do not have permission to view this content.内置 SVG 插画。
errorSomething went wrongPlease try again later.内置 SVG 插画。
guideStart hereFollow the steps to get started.内置 SVG 插画。
custom空空无,除非传入 icon 或 icon 插槽。

预设组件

预设组件固定 variant,其余属性、事件与插槽原样透传给 TxEmptyState。

组件固定 variant说明
TxBlankSlateblank-slate默认 size="large"、layout="vertical"、surface="plain"。
TxLoadingStateloading加载占位。
TxNoSelectionno-selection列表未选中时的详情区。
TxNoDatano-data加载成功但没有数据。
TxSearchEmptysearch-empty搜索或筛选无结果。
TxOfflineStateoffline网络不可用。
TxPermissionStatepermission权限不足。
TxErrorStateerror错误。
TxGuideStateguide引导。

概述

  • 先按 variant 解析预设,再应用显式属性;插槽优先于同区域的生成内容。
  • actions 插槽整体替换生成按钮;生成按钮次操作在前、主操作在后。
  • icon=null 隐藏插画;loading 只在没有 icon 插槽且 icon 为空时以 TxSpinner 代替图标。
  • surface="card" 只增加视觉容器,不改变语义与按钮行为。
  • 减少动态效果时,所有插画停在完整的静止帧。

技术实现

  • 源码:packages/tuffex/packages/components/src/empty-state/;预设组件在各自目录。
查看源码
packages/tuffex/packages/components/src/empty-state/index.ts