更新记录

1.0.0(2026-10-08) 下载此版本

  • 首个版本,实现组件基础能力,支持 Vue2 / Vue3、全平台(App / H5 / 各家小程序)。

平台兼容性

uni-app(4.05)

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

e-drawer 抽屉

抽屉式导航组件,支持左右方向、自定义宽度、遮罩点击关闭,适合侧边菜单、筛选面板、设置面板等场景。

特性

  • 左右两个方向弹出
  • 宽度可自定义
  • 内容区独立滚动,自带 iOS 惯性滚动优化
  • 遮罩点击关闭,防止滚动穿透

基本用法

<template>
  <view>
    <button @click="show = true">打开菜单</button>

    <e-drawer v-model="show" mode="left" width="260px">
      <view class="menu">
        <view
          v-for="item in menus"
          :key="item.name"
          class="menu-item"
          @click="go(item)"
        >
          <text>{{ item.name }}</text>
        </view>
      </view>
    </e-drawer>
  </view>
</template>

<script>
export default {
  data() {
    return {
      show: false,
      menus: [
        { name: '首页', path: '/pages/index/index' },
        { name: '路况监测', path: '/pages/road/index' },
        { name: '事件管理', path: '/pages/event/index' },
        { name: '系统设置', path: '/pages/setting/index' }
      ]
    }
  },
  methods: {
    go(item) {
      this.show = false
      uni.navigateTo({ url: item.path })
    }
  }
}
</script>

属性

属性名 类型 默认值 说明
modelValue Boolean false 是否显示,支持 v-model
mode String left 弹出方向:left / right
width String 220px 抽屉宽度
height String 100% 抽屉高度
maskOpacity Number 0.5 遮罩透明度
maskClickClose Boolean true 点击遮罩是否关闭
duration Number 300 动画时长(毫秒)
zIndex Number | String 998 层级

事件

事件名 说明
open 打开时触发
close 关闭动画结束后触发
maskClick 点击遮罩时触发

使用提示

宽度不要用百分比

抽屉宽度建议用固定值(px)而非百分比。百分比在横竖屏切换、平板适配时会导致菜单宽度异常,固定宽度在移动端是更稳的选择。常用的宽度:

  • 窄菜单(只有图标):80px
  • 标准菜单(图标 + 文字):220px ~ 260px
  • 筛选面板:300px ~ 340px

点击菜单项后记得关闭抽屉

抽屉打开时遮罩会拦截下层页面点击,所以菜单项点击后应先 v-model 置 false 再跳转,否则用户返回时会看到抽屉仍处于打开状态。

内容区滚动

e-drawer 的内容区自带 overflow-y: auto,超出高度的内容可以滚动。如果菜单项很多需要更好的性能,可以在里面嵌套 scroll-view。

与 e-popup 的区别

e-popup 的 left / right 模式也能实现侧边弹出,两者的定位不同:

组件 适用场景 特点
e-drawer 导航菜单、设置面板 宽度固定、内容区默认独立滚动、语义化更强
e-popup 通用弹出层 更灵活、支持五种位置,宽度需自行指定

做侧边菜单用 e-drawer,其默认行为更贴合需求,代码更少。

平台兼容

App (vue / nvue)、H5、全平台小程序均支持。

隐私与权限

纯前端渲染组件,不申请任何权限,不采集、不上传任何数据。

隐私、权限声明

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

无

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

纯前端渲染组件,不采集、不上传任何数据。

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

无

许可协议

MIT协议

暂无用户评论。