Skip to content

空状态

TuiEmpty 用于在列表、容器或页面没有内容时显示占位提示。它通常包含一个图标、一段描述性文字,并且支持添加操作按钮以引导用户进行下一步操作。

此组件也被 TuiSelectTuiTree 等组件内部复用,用于展示无匹配数据时的状态。

基础用法

最简单的用法,直接使用 <TuiEmpty />。默认显示一个警告图标和“暂无内容”提示。

vue
<template>
  <div class="demo-box">
    <TuiEmpty />
  </div>
</template>

自定义内容

可以通过 icon 属性自定义图标,通过 text 属性自定义提示文案。

vue
<template>
  <div class="demo-box">
    <TuiEmpty icon="tui-icon ti-star" />
    
    <TuiEmpty text="购物车是空的" />
  </div>
</template>

边框外观

添加 bordered 属性可以给组件增加边框和内边距。这种样式通常用于卡片内部或下拉菜单中,使空状态区域更加独立和明显。

vue
<template>
  <div style="width: 300px;">
    <TuiEmpty bordered text="暂无数据" />
  </div>
</template>

附加操作

当需要引导用户摆脱空状态(例如:刷新、重试、去添加)时,可以通过 showButton 属性开启底部按钮,并配置按钮的文本和点击事件。

vue
<script setup>
const handleRetry = () => {
  console.log('点击了重试按钮')
}
</script>

<template>
  <TuiEmpty 
    bordered 
    showButton 
    buttonText="刷新重试" 
    buttonType="primary"
    :buttonClick="handleRetry" 
  />
</template>

尺寸

除了默认尺寸外,还支持defaultsmalllarge 三种尺寸,以适应不同的布局空间。

  • small: 适用于狭小的容器,如 Select 下拉框、侧边栏。
  • large: 适用于整页空状态。
vue
<template>
  <div class="row">
    <TuiEmpty size="small" bordered />
    
    <TuiEmpty size="large" bordered />
  </div>
</template>

API 参考

Props

属性名说明类型默认值
text提示文字内容String'暂无内容'
icon图标类名String'tui-icon ti-alert-circle'
bordered是否显示边框和背景Booleanfalse
size尺寸,可选 null, 'small', 'large'Stringnull
showButton是否显示底部操作按钮Booleanfalse
buttonText按钮文字String'返回'
buttonType按钮类型,可选 'default', 'primary', 'danger'String'default'
buttonClick按钮点击的回调函数Function