更新记录

1.0.0(2026-05-19) 下载此版本

初始版本 支持四种状态展示 内置图标资源 支持自定义文字配置


平台兼容性

uni-app(3.8.1)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.0 1.0.0 - - 1.0.0 - 4.4 1.0.0 12 1.0.0 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(3.8.1)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

mevermore-state

一个优雅的状态视图组件,用于在 UniApp 项目中展示加载中、空数据、错误和网络异常等状态。

功能特性

  • 支持四种状态展示:加载中、空数据、错误、网络异常
  • 内置精美图标资源,无需额外引入
  • 支持自定义提示文字和按钮文本
  • 优雅的卡片式布局设计
  • 平滑的动画效果

安装

# 通过 npm 安装
npm install mevermore-state --save

# 或直接复制组件到项目中

使用示例

基本使用

<template>
  <view>
    <mevermore-state :state="currentState" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      currentState: 'loading' // loading, empty, error, network, content
    };
  }
};
</script>

自定义文字

<mevermore-state
  :state="currentState"
  loading-text="正在加载..."
  empty-text="暂无数据,请稍后再试"
  empty-button-text="点击刷新"
  error-text="加载失败"
  network-text="网络连接失败,请检查网络"
  retry-button-text="重新加载"
  @emptyclick="handleEmptyClick"
  @retry="handleRetry"
/>

API

Props

参数 类型 默认值 说明
state String content 状态值,可选值:loadingemptyerrornetworkcontent
loadingText String 加载中... 加载状态的提示文字
emptyText String 暂无数据 空数据状态的提示文字
emptyButtonText String - 空数据状态的按钮文字(不设置则不显示按钮)
errorText String 加载失败 错误状态的提示文字
networkText String 网络连接失败 网络异常状态的提示文字
retryButtonText String 重试 错误和网络状态的重试按钮文字
minHeight Number 400 组件最小高度(单位:px)

Events

事件名 说明
retry 点击重试按钮时触发
emptyclick 点击空状态按钮时触发

状态说明

状态值 说明 显示内容
loading 加载中 加载动画 + 提示文字
empty 空数据 空图标 + 提示文字 + 可选按钮
error 加载失败 错误图标 + 提示文字 + 重试按钮
network 网络异常 网络图标 + 提示文字 + 重试按钮
content 显示内容 不显示任何状态视图

项目结构

mevermore-state/
├── components/
│   └── mevermore-state/
│       └── mevermore-state.vue  # 主组件
├── static/
│   ├── empty.png                # 空状态图标
│   └── loading.svg              # 加载动画图标
├── package.json
├── readme.md
└── changelog.md

示例代码

<template>
  <view>
    <mevermore-state
      :state="state"
      :min-height="500"
      loading-text="努力加载中..."
      empty-text="暂无相关数据"
      empty-button-text="去看看其他"
      error-text="哎呀,出错了"
      network-text="网络不给力,请检查网络连接"
      retry-button-text="再试一次"
      @retry="onRetry"
      @emptyclick="onEmptyClick"
    />
  </view>
</template>

<script>
export default {
  data() {
    return {
      state: 'loading'
    };
  },
  methods: {
    onRetry() {
      // 重试逻辑
      this.state = 'loading';
      // 重新加载数据...
    },
    onEmptyClick() {
      // 空状态按钮点击逻辑
      console.log('空状态按钮被点击');
    }
  }
};
</script>

关于图片路径

组件中的图片使用绝对路径 /uni_modules/mevermore-state/static/,这是因为:

  1. 确保路径解析正确:在 UniApp 中,相对路径可能会因为组件被引用的位置不同而导致解析错误
  2. 兼容 H5 和小程序:不同平台对相对路径的处理方式不同,绝对路径更可靠
  3. 便于维护:统一的资源路径管理更易于维护和迁移

如果需要使用相对路径,需要根据组件实际被引用的位置调整路径,但不建议这样做,因为可能导致在不同页面引用时出现资源找不到的问题。

样式说明

  • 组件使用卡片式布局,带有圆角和阴影效果
  • 图标区域使用渐变背景,不同状态有不同的配色方案
  • 加载图标有旋转动画效果
  • 按钮点击有缩放反馈效果

版本历史

v1.0.0

  • 初始版本
  • 支持四种状态展示
  • 内置图标资源
  • 支持自定义文字配置

许可证

MIT License

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。