Skip to content

n-empty 空状态 ​

空状态占位与结果页二合一:mode 单枚举 18 个预设——14 个空态场景(data 数据为空 / list 列表 / news 新闻 / message 消息 / search 搜索无结果 / address 地址 / order 订单 / coupon 优惠券 / car 购物车 / favor 收藏 / permission 权限 / history 历史 / wifi 网络 / page 页面不存在)+ 4 个结果态(success / warning / error / waiting)。空态默认 = 品牌淡色圆盘 + 品牌色图标 + 次要灰文案;结果态默认 = 功能色实底圆盘 + 白图标 + 加粗主标题;主文案留空自动取场景预设文案(跟随语言包,切换语言即时刷新)。

  1. 零配置即用:<n-empty mode="order" /> 出完整空态(图标 + 场景文案);换图标传 icon,换文案传 text,补第二行说明传 description
  2. 结果页用法:mode="success" 圆盘自动换功能色实底、图标转白、主文案转加粗主标题——放 default 插槽进「返回首页 / 查看订单」等操作按钮即成结果页
  3. 自定义插画放 #icon 插槽(image 插画或任意内容,几何自理),整位替换内置圆盘;disc-color="transparent" 关闭圆盘得纯图标形态

平台兼容性 ​

App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序
√ √ √ × × × ×

如何调用 ​

html
<n-empty mode="order" />

API ​

属性 ​

参数 说明 类型 默认值 可选值
mode 场景预设(决定默认图标、默认文案与配色);非法值按 data 处理 String "data" data / list / news / message / search / address / order / coupon / car / favor / permission / history / wifi / page / success / warning / error / waiting
icon 覆盖预设图标:内置图标名或 registerIconFont 注册的自有图标名;图片插画走 #icon 插槽 String "" -
icon-size 图标字号(px) Number 44 -
icon-color 图标颜色;空 = 空态品牌色 / 结果态白色 String "" 与 css 相同
disc-size 圆盘直径(px):图标在盘内居中,改盘径即整体缩放插画位 Number 96 -
disc-color 圆盘底色:空 = 空态品牌淡色 / 结果态功能色实底;'transparent' = 关闭圆盘(纯图标形态) String "" 与 css 相同
text 主文案;空 = 按 mode 取场景预设文案(跟随语言包) String "" -
text-size 主文案字号(px) Number 15 -
text-color 主文案颜色;空 = 空态次要灰 / 结果态主墨(结果态自动加粗为标题观感) String "" 与 css 相同
description 补充描述(第二行小字);空串不渲染 String "" -
description-size 描述字号(px) Number 13 -
description-color 描述颜色;空 = 次要灰(跟随主题,深浅自动适配) String "" 与 css 相同
fixed 贴屏垂直居中:fixed 定位水平铺满 + 垂直居中,只占内容高度(不铺满全屏,内容区外的屏幕照常交互);false 为常规文档流占位 Boolean false -
custom-class 挂到根节点的额外 class(类需定义在组件样式表内) String "" -
custom-style 根节点行内样式,如 "margin:20px 0"(与相邻元素的排间距也走它) String "" 与 css 相同

事件 ​

事件名 说明
click 点击组件时触发(用于「点击重试」等场景;操作区按钮各自处理自己的点击)

插槽 ​

插槽名 说明
icon 整位替换内置插画(圆盘 + 图标):放 image 插画或任意内容,几何自理;提供即接管插画位
default 操作区:放 n-button 等操作内容,位于描述下方

实现说明 ​

  • 预设并集:场景枚举取移动端组件库空状态的场景全集(14 个空态场景)并补入结果页组件的四类型(success / warning / error / waiting,命名对齐本库语义色 error)合入单一 mode;参考库用 icon / type / mode 三套枚举重复表达同一维度,本库收敛为单枚举。结果态与空态共用同一套插画位 / 文案 / 操作区结构——结果页本质就是带类型圆盘的空态。
  • 插画视觉:参考库的内置插画是多色 SVG 字形或发行图片资产;本库加密发行零静态资源,内置插画位取「圆盘 + 图标字体」:空态 = 品牌淡色盘(--n-empty-disc-color,品牌色 10% 透明)+ 品牌色图标;结果态 = 功能色实底盘 + 白图标(圆盘观感沿用结果页参考形态)。需要多色插画时用 #icon 插槽放 image。
  • 文案分层:空态主文案取次要灰(轻提示语义)、结果态取主墨加粗(标题语义)——两套语义在参考源中本就并存,按 mode 自动分层即可取得两类场景的默认最优观感;text-color / text-size 显式覆盖。主文案留空回落场景文案(t() 全字面量键,语言切换即时刷新)。
  • 装配位重建:插画位(插槽 / 纯图标 / 空态盘 / 自定义色盘 / 结果盘)与盘色种类切换走 :key 整子树销毁重建,规避 App 端背景与子节点插拔不重绘的已知问题;盘底色预设走类(引用运行时变量层)、自定义值走行内 background-color 单属性——单值 + var 链路全端可靠。
  • fixed 形态:取「贴屏垂直居中条」而非「全屏铺满 + 点击穿透」——穿透写法(pointer-events: none)在 App 端父层 none 时子元素显式 auto 也不响应,会废掉操作区按钮与 click;条形定位只占内容高度,内容区外的屏幕照常交互,层级走 --n-empty-fixed-z-index(默认 99,低于弹层与轻提示)。
  • 不收项:参考元数据中的 close 事件(其源系声明了从未触发的死事件,模板无关闭按钮)、show 显隐 prop(纯静态组件无副作用,v-if 等价)、marginTop prop(间距走 custom-style,与全库定制通道一致)、width/height 图标宽高拆分(圆盘单值 discSize 等价表达)。

记录 · 思考 · 创作