更新记录

1.0.0(2024-12-19) 下载此版本

  • 首次发布
  • 支持手势操作
  • 支持 Vue2/Vue3
  • 优化动画效果
  • 美化箭头样式

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
×

LKL Drawer Panel 抽屉面板

一个简单、美观、易用的抽屉面板组件,支持上拉展开和下拉收起,适用于各种列表、菜单、详情等场景。

特性

  • 简单易用 - 开箱即用,配置灵活
  • 优雅美观 - 动画流畅,视觉统一
  • 功能强大 - 支持手势操作、自定义高度
  • 双向绑定 - 支持 v-model,Vue2/Vue3 通用

安装方式

通过 uni_modules 在插件市场导入即可使用。

基本用法

Vue3

<template>
  <lkl-drawer-panel v-model="show" :height="600">
    <view class="content">
      <!-- 你的内容 -->
    </view>
  </lkl-drawer-panel>
</template>

<script setup>
import { ref } from 'vue'

const show = ref(false)
</script>

Vue2

<template>
  <lkl-drawer-panel v-model="show" :height="600">
    <view class="content">
      <!-- 你的内容 -->
    </view>
  </lkl-drawer-panel>
</template>

<script>
export default {
  data() {
    return {
      show: false
    }
  }
}
</script>

API

Props 属性

属性名 类型 默认值 说明
v-model / modelValue Boolean false Vue3 控制面板的显示和隐藏
v-model / value Boolean false Vue2 控制面板的显示和隐藏
height Number 800 面板展开时的高度(单位:rpx)
peekHeight Number 40 面板收起时露出的高度(单位:rpx)

Events 事件

事件名 说明 回调参数
@update:modelValue Vue3 面板状态改变时触发 (show: boolean)
@input Vue2 面板状态改变时触发 (show: boolean)
@change 面板状态改变时触发(Vue2/Vue3 通用) (show: boolean)

Slots 插槽

名称 说明
default 面板的内容区域

示例展示

Vue3 组合式 API

<template>
  <view>
    <button @tap="show = true">打开面板</button>

    <lkl-drawer-panel v-model="show" :height="600">
      <view class="panel-content">
        <view class="title">标题</view>
        <view class="list">
          <view class="item" v-for="i in 10" :key="i">
            列表项 {{ i }}
          </view>
        </view>
      </view>
    </lkl-drawer-panel>
  </view>
</template>

<script setup>
import { ref } from 'vue'

const show = ref(false)
</script>

<style lang="scss">
.panel-content {
  padding: 20rpx;

  .title {
    font-size: 32rpx;
    font-weight: bold;
    margin-bottom: 20rpx;
  }

  .item {
    padding: 20rpx;
    border-bottom: 1px solid #eee;
  }
}
</style>

Vue2 选项式 API

<template>
  <view>
    <button @tap="show = true">打开面板</button>

    <lkl-drawer-panel v-model="show" :height="600">
      <view class="panel-content">
        <view class="title">标题</view>
        <view class="list">
          <view class="item" v-for="i in 10" :key="i">
            列表项 {{ i }}
          </view>
        </view>
      </view>
    </lkl-drawer-panel>
  </view>
</template>

<script>
export default {
  data() {
    return {
      show: false
    }
  }
}
</script>

<style lang="scss">
.panel-content {
  padding: 20rpx;

  .title {
    font-size: 32rpx;
    font-weight: bold;
    margin-bottom: 20rpx;
  }

  .item {
    padding: 20rpx;
    border-bottom: 1px solid #eee;
  }
}
</style>

注意事项

  1. 面板高度建议不要超过屏幕高度
  2. 内容区域可以使用 scroll-view 实现滚动
  3. 建议将复杂的内容组件化,以提高性能
  4. Vue2 和 Vue3 的 v-model 实现方式略有不同,请根据实际框架版本选择对应的用法

更新日志

v1.0.0 (2024-12-19)

  • 首次发布
  • 支持手势操作
  • 支持 Vue2/Vue3
  • 优化动画效果
  • 美化箭头样式

作者

LKL

License

MIT

隐私、权限声明

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

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

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

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问