更新记录
1.0.0(2026-10-08) 下载此版本
- 首个版本,实现组件基础能力,支持 Vue2 / Vue3、全平台(App / H5 / 各家小程序)。
平台兼容性
uni-app(5.23)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | √ | √ | √ | √ | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | - | - | - |
e-icons 图标
轻量图标组件,内置 90+ 常用移动端图标。纯 Vue 实现,全平台通用,无需自定义基座。
特性
- 零字体依赖:使用内联 SVG path 渲染,不需要
@font-face与 ttf 文件,小程序端免去 base64 转换 - 全平台一致:App / H5 / 微信 / 支付宝 / 抖音 等小程序渲染结果一致
- 可 tree-shaking:只引用用到的图标,产物不膨胀
- 可扩展:通过
customPrefix传入自己的图标表,与内置图标合并使用
安装
本插件为 uni_modules 规范组件,引入工程后可直接使用,无需 npm 安装。
基本用法
<template>
<view>
<!-- 最简用法 -->
<e-icons type="home" />
<!-- 自定义颜色与尺寸 -->
<e-icons type="star-filled" color="#ff9500" :size="32" />
<!-- 尺寸支持 rpx -->
<e-icons type="notification" color="#dd524d" size="48rpx" />
<!-- 可点击 -->
<e-icons type="close" clickable @click="onClose" />
<!-- 使用图片作为图标 -->
<e-icons image="/static/icons/custom.png" :size="24" />
</view>
</template>
属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type |
String | '' |
图标名,取自内置图标表 |
color |
String | #333333 |
图标颜色 |
size |
Number | String | 16 |
图标尺寸,纯数字按 px,也可传 '20rpx' |
customPrefix |
Object | {} |
自定义图标表,与内置合并,同名覆盖 |
customClass |
String | '' |
自定义容器类名 |
image |
String | '' |
使用图片图标时的地址,设置后忽略 type |
clickable |
Boolean | false |
是否可点击(开启后有按压反馈) |
事件
| 事件名 | 说明 | 回调参数 |
|---|---|---|
click |
点击图标时触发(需 clickable 为 true) |
{ type, originEvent } |
内置图标清单
方向类
arrow-left arrow-right arrow-up arrow-down up down back forward
操作类
close closeempty closeempty-circle checkmarkempty checkbox checkbox-filled circle circle-filled plus plusempty minus trash refresh undo redo
导航与状态类
home home-filled list bars more more-filled search info info-filled help help-filled notification notification-filled star star-filled heart heart-filled download upload image camera videocam videofill chat chatbubble chatbubble-filled chatboxes person person-filled contact contact-filled staff setting gear location location-filled map link email phone cart wallet order lock unlock eye eye-filled calendar time clock sound sound-filled compose paperplane paperplane-filled flag flag-filled mic mic-filled loop scan cloud-upload cloud-download list-box gift medal
扩展自定义图标
在 icons.js 中追加,或在使用时传入:
<template>
<e-icons type="my-icon" :custom-prefix="myIcons" color="#007aff" :size="24" />
</template>
<script>
export default {
data() {
return {
// 关键:viewBox 必须是 0 0 1024 1024,可与其他图标库坐标体系对齐
myIcons: {
'my-icon': 'M512 128a384 384 0 1 0 0 768 384 384 0 0 0 0-768z'
}
}
}
}
</script>
实现说明
为什么不用 iconfont 字体方案?
字体图标需要额外加载 ttf/woff 文件,在小程序端必须转成 base64 内联才能生效,会显著增大包体积;且字体单色限制无法做多色图标,也无法按需裁剪。SVG path 方案下每个图标只是一个字符串,零网络请求、可 tree-shaking、渲染结果在各端完全一致。
viewBox 为什么固定 1024?
与阿里巴巴 iconfont、uni-icons 等主流图标库的坐标体系保持一致,你可以直接把现成的 SVG path 粘贴进来,不需要做缩放换算。
平台兼容
| 平台 | 支持 |
|---|---|
| App (vue / nvue) | √ |
| H5 | √ |
| 微信小程序 | √ |
| 支付宝小程序 | √ |
| 抖音小程序 | √ |
| 百度小程序 | √ |
| 快手小程序 | √ |
| 京东小程序 | √ |
| QQ 小程序 | √ |
| 飞书小程序 | √ |
隐私与权限
本插件为纯前端渲染组件,不申请任何系统权限,不采集、不上传任何数据。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 2
赞赏 0
下载 12658012
赞赏 1955
赞赏
京公网安备:11010802035340号