Empty空状态组件怎么在Vue里优雅地展示?
我在用Vue做列表页,数据为空时想显示一个友好的空状态提示,但不知道怎么组织结构才合理。试过直接在v-if里写提示文字,但样式和逻辑混在一起很乱。
现在用了个简单的写法,但感觉不够通用,每次都要重复写一样的结构:
<div v-if="list.length === 0" class="empty-state">
<img src="/empty.svg" alt="空状态" />
<p>暂无数据</p>
</div>
<ul v-else>
<li v-for="item in list" :key="item.id">{{ item.name }}</li>
</ul>
有没有更组件化的方式?比如封装成一个<Empty />组件,还能自定义文案和图标?
用起来就是这样:
这样文案、图标、按钮都能自定义,还支持默认插槽放操作按钮,比之前那种写法干净多了。