更新记录
1.0.0(2026-10-08) 下载此版本
- 首个版本,实现组件基础能力,支持 Vue2 / Vue3、全平台(App / H5 / 各家小程序)。
平台兼容性
uni-app(4.06)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | √ | √ | √ | √ | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | - | - | - |
e-grid 宫格
宫格布局组件,由 e-grid 容器与 e-grid-item 宫格项组成,用于九宫格入口、功能导航、图标菜单等场景。
特性
- 自定义列数(1~8 列)
- 支持边框开关与方形单元格
- 内置角标支持
- 支持点击跳转(自动处理普通页面与 tabBar 页面)
基本用法
<template>
<view>
<!-- 三列九宫格 -->
<e-grid :column="3">
<e-grid-item
v-for="item in menus"
:key="item.text"
:icon="item.icon"
:text="item.text"
:badge="item.badge"
@click="onMenu(item)"
/>
</e-grid>
</view>
</template>
<script>
export default {
data() {
return {
menus: [
{ text: '首页', icon: '/static/icons/home.png' },
{ text: '路况', icon: '/static/icons/road.png', badge: 3 },
{ text: '服务区', icon: '/static/icons/service.png' },
{ text: '摄像头', icon: '/static/icons/camera.png' },
{ text: '事件', icon: '/static/icons/event.png', badge: 12 },
{ text: '我的', icon: '/static/icons/user.png' }
]
}
},
methods: {
onMenu(item) {
console.log('点击了:', item.text)
}
}
}
</script>
e-grid 属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
column |
Number | String | 3 |
每行列数,取值 1~8 |
border |
Boolean | true |
是否显示分隔边框 |
square |
Boolean | false |
是否强制方形单元格 |
gap |
Number | String | 0 |
宫格项间距,数字按 rpx |
highlightColor |
String | #007aff |
高亮色 |
outerBorder |
Boolean | false |
是否显示外边框 |
e-grid-item 属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
icon |
String | '' |
图标地址 |
text |
String | '' |
文字说明 |
url |
String | '' |
点击跳转地址,设置后自动跳转 |
badge |
String | Number | '' |
角标内容 |
badgeMax |
Number | 99 |
角标最大值,超过显示 99+ |
clickable |
Boolean | true |
是否可点击 |
textColor |
String | #333333 |
文字颜色 |
fontSize |
Number | 14 |
文字字号(px) |
padding |
Number | 24 |
上下内边距(rpx) |
插槽
e-grid-item 提供默认插槽,可完全自定义单元格内容:
<e-grid :column="2">
<e-grid-item text="自定义">
<e-icons type="star-filled" color="#ff9500" :size="32" />
<text class="label">收藏</text>
</e-grid-item>
</e-grid>
事件
| 组件 | 事件名 | 回调参数 |
|---|---|---|
e-grid-item |
click |
{ url, originEvent } |
使用提示
为什么用百分比宽度而不是 flex: 1?
如果用 flex: 1 平分宽度,最后一行项目数不足时(比如 5 个项目放 3 列),剩下的 2 个会被拉伸填满整行,导致宽度不一致。组件改为显式设置 width: 100 / column %,保证每个格子宽度恒定。
边框显示不全
边框是画在每个格子右侧和下侧,因此最后一列会多出一条右边线。如果需要精确的四周闭合边框,设置 outerBorder 为 true 让容器承担外框。
点击跳转 tabBar 页面
url 指向 tabBar 页面时 uni.navigateTo 会失败,组件已内置降级:失败后自动尝试 switchTab。
平台兼容
App (vue / nvue)、H5、全平台小程序均支持。
隐私与权限
纯前端渲染组件,不申请任何权限,不采集、不上传任何数据。

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