更新记录

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

Features

  • 支持左右双向滑动操作按钮
  • renderjs 视图层手势处理(App/H5 零主线程开销)
  • 小程序平台 catchtouchmove 兼容方案
  • 阈值触发机制,支持自定义灵敏度
  • 弹性回弹动画(cubic-bezier 弹簧曲线)
  • 按钮组自动管理(同一时间只有一个 SwipeAction 展开)
  • provide/inject + 全局事件总线双重管理模式
  • 支持程序化控制(open / close 方法)
  • 操作按钮自定义样式(渐变背景、图标、文字)
  • 与 neo-zlist-pro 完美嵌套联动
  • Vue 2.7+ / Vue 3 Composition API 全兼容
  • 全平台支持(H5 / App / 各大小程序)

Performance

  • App/H5 使用 renderjs 在视图层处理手势,主线程零开销
  • requestAnimationFrame 节流 callMethod 频率
  • CSS transition GPU 加速动画
  • 方向锁定后不再重复计算
  • 组件销毁时清理事件监听,防止内存泄漏

平台兼容性

uni-app(3.7.8)

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

uni-app x(3.7.8)

Chrome Safari Android iOS 鸿蒙 微信小程序

Neo SwipeAction Pro - 高性能滑动操作单元格

高性能侧滑操作组件,renderjs 视图层手势处理,弹性回弹动画,支持左右双向滑动,与 neo-zlist-pro 完美集成。

特性

  • 极致性能:App/H5 使用 renderjs 在视图层处理手势,主线程零开销
  • 左右双向滑动:左侧和右侧均可配置独立操作按钮
  • 弹性回弹:iOS 风格橡皮筋阻力,超出边界自动衰减
  • 阈值触发:可配置触发全开的滑动距离比例
  • 按钮组互斥:同一时间只有一个 SwipeAction 展开
  • 程序化控制:支持 open() / close() 方法调用
  • 完美兼容:Vue 2.7+ / Vue 3 Composition API,全平台支持
  • 与 neo-zlist-pro 联动:列表纵向滚动与单元格横向滑动互不干扰

兼容性

Vue2 Vue3 H5 App 微信/支付宝/头条/百度/快手/QQ

安装

在 DCloud 插件市场搜索 neo-swipe-action-pro 导入,或直接复制 uni_modules/neo-swipe-action-pro 到项目的 uni_modules 目录。

快速开始

<template>
  <neo-swipe-action-pro
    :actions="leftActions"
    :rightActions="rightActions"
    :threshold="0.3"
    @action="onAction"
  >
    <view class="item">
      <text>向左或向右滑动试试</text>
    </view>
  </neo-swipe-action-pro>
</template>

<script>
import { defineComponent } from 'vue'

export default defineComponent({
  setup() {
    const leftActions = [
      { text: '置顶', icon: '📌', style: 'background: linear-gradient(135deg, #3b82f6, #2563eb);' }
    ]
    const rightActions = [
      { text: '删除', icon: '🗑', style: 'background: linear-gradient(135deg, #ef4444, #dc2626);' }
    ]

    function onAction(e) {
      console.log(e.direction, e.index, e.name)
    }

    return { leftActions, rightActions, onAction }
  }
})
</script>

与 neo-zlist-pro 联动

<neo-zlist-pro :list="items" height="600rpx">
  <template #default="{ item }">
    <neo-swipe-action-pro
      :rightActions="actions"
      :name="item.id"
      @action="onAction"
    >
      <view class="list-item">{{ item.title }}</view>
    </neo-swipe-action-pro>
  </template>
</neo-zlist-pro>

API

Props

属性 类型 默认值 说明
actions Array [] 左侧操作按钮,{text, style, icon, className}
rightActions Array null 右侧操作按钮
threshold Number 0.3 触发全开的滑动距离比例 (0-1)
disabled Boolean false 禁用滑动
autoClose Boolean true 点击操作后自动关闭
name String/Number '' 标识符,回传在事件中

Events

事件 参数 说明
action {name, index, direction} 操作按钮被点击
open {name, direction} 滑动打开
close {name} 关闭

Methods(通过 ref 调用)

方法 参数 说明
open direction: 'left' \| 'right' 程序化打开
close - 程序化关闭

使用建议

  1. 操作按钮数量建议 1-3 个,过多会影响体验
  2. 按钮 style 中设置 min-width 可自定义单个按钮宽度
  3. 嵌套在 scroll-view 或 neo-zlist-pro 中使用时,手势方向自动识别
  4. 需要全局互斥效果时,确保 SwipeAction 在同一个页面内

许可

MIT

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。