uni-app微信小程序开发:高频核心 API(三)
10. 列表项左右滑动以展示隐藏操作按钮uni-swipe-action出处uni-swipe-action 组件文档用处在移动端开发中屏幕空间寸土寸金。为了在不跳转页面的情况下展示更多操作选项“左滑删除”或“左滑操作”已成为业界标准的交互模式。在 uni-app 生态中uni-swipe-action是实现这一功能的官方推荐组件。它不仅支持左滑还支持右滑且兼容小程序和 App。基本语法uni-swipe-action的结构可以概括为“一个容器多个子项”。uni-swipe-action外层容器充当事件总线的角色用于管理内部所有子项的开关状态。uni-swipe-action-item具体的列表项包裹内容区域和操作按钮区域。核心属性1.uni-swipe-action-item的关键属性right-options右侧按钮配置数组。这是最常用的属性用于定义滑出按钮的文字、样式和图标。数据结构[{ text: 删除, style: { backgroundColor: #dd524d } }]left-options左侧按钮配置数组用法同右。threshold滑动阈值。比如设为100表示滑动超过 100px 才会弹出按钮。disabled是否禁用滑动。2. 事件click当点击按钮时触发回调参数中包含按钮的索引。change当滑动状态变化时触发打开/关闭。基础示例下面实现一个经典的“左滑删除”列表项。template view classcontainer !-- 外层容器用于收起其他已打开的项 -- uni-swipe-action !-- 列表循环 -- uni-swipe-action-item v-for(item, index) in list :keyitem.id :right-optionsoptions clickhandleClick($event, index) changechangeSwipe !-- 正文内容区域 -- view classcontent-box text{{ item.title }}/text text classinfo{{ item.content }}/text /view /uni-swipe-action-item /uni-swipe-action /view /template script export default { data() { return { list: [ { id: 1, title: 消息通知, content: 您有一条新的付款消息 }, { id: 2, title: 系统更新, content: 新版本 v2.0 已发布 } ], // 右侧按钮配置 options: [ { text: 取消, style: { backgroundColor: #C7C6CD } }, { text: 删除, style: { backgroundColor: #DD524D } } ] }; }, methods: { // 点击按钮回调 handleClick(e, index) { const { content } e; // content.text 可以判断点击了哪个按钮 if (content.text 删除) { uni.showModal({ title: 提示, content: 确定删除吗, success: (res) { if (res.confirm) { this.list.splice(index, 1); uni.showToast({ title: 删除成功, icon: success }); } } }); } else if (content.text 取消) { // 关闭当前项的滑动菜单通常通过 ref 调用 close 方法下文详述 console.log(点击取消); } }, // 滑动状态变化 changeSwipe(e) { console.log(当前状态, e.open ? 已打开 : 已关闭); } } }; /script style .content-box { width: 100%; padding: 20rpx 30rpx; background-color: #fff; border-bottom: 1rpx solid #eee; } .info { margin-left: 20rpx; color: #888; font-size: 24rpx; } /style企业开发中的实际应用场景场景一消息中心与邮件列表左滑标为已读这是最常见的场景。用户向左滑动一条消息可以快速“标为已读”、“置顶”或“删除”无需进入详情页操作。// 动态配置 options const msgOptions [ { text: 置顶, style: { backgroundColor: #007AFF } }, { text: 标为已读, style: { backgroundColor: #4CD964 } }, { text: 删除, style: { backgroundColor: #DD524D } } ];场景二购物车与订单管理批量操作在电商 App 的订单列表中左滑订单卡片可以进行“删除订单”或“联系客服”操作。特别之处此时通常需要配合uni-swipe-action的实例方法确保用户滑开一个新的订单时上一个滑开的订单自动关闭避免界面混乱。场景三自定义复杂交互如滑动解锁除了列表操作有些 App 会利用threshold属性实现“滑动解锁”或“滑动确认收款”功能将整个屏幕宽度作为滑动区域滑到底部触发事件。注意事项在使用uni-swipe-action时新手常会遇到以下问题(1) 按钮点击后菜单不自动关闭现象用户点击了“删除”列表更新了但滑动菜单依然处于打开状态或者点击“取消”后菜单没关。解决方案需要通过ref获取组件实例并调用close()方法。uni-swipe-action refswipeAction uni-swipe-action-item refswipeItem.../uni-swipe-action-item /uni-swipe-action// 点击事件中 this.$refs.swipeItem.close(); // 或者关闭所有推荐在列表场景下点击任意按钮后关闭所有 this.$refs.swipeAction.closeAll();(2) 嵌套在scroll-view中的冲突现象当页面也是可滚动时用户想左滑结果手指稍微偏上偏下一点就变成了列表上下滚动导致滑动很难触发。解决uni-swipe-action内部已处理了部分触摸事件冲突。尽量保证滑动区域content-box有一定的高度如 100rpx 以上方便用户操作。如果是在微信小程序端可以使用enable-flex属性开启 flex 布局以兼容部分机型。(3) 样式覆盖问题现象默认的按钮样式如宽度、字体大小不符合设计稿要求。解决不要尝试去修改uni-swipe-action-item内部 class因为它使用了 shadow-dom 或原生组件。请务必通过right-options中的style对象来配置样式例如{ text: 删除, style: { backgroundColor: #DD524D, fontSize: 28rpx, // 仅部分平台支持 width: 100px // 部分平台支持自定义宽度 } }(4) 动态数据更新导致的状态错乱现象在列表中使用v-for循环当删除某一项后新的一项继承了上一项的打开状态。解决确保在删除数据逻辑之前先调用close()关闭菜单或者给uni-swipe-action-item绑定唯一的:key且该 key 在删除操作后保持稳定。

相关新闻

51单片机 04(ds18b20传感器)

51单片机 04(ds18b20传感器)

一、DS18B20传感器参数1. 测温量程 测量温度范围:-55℃ ~ 125℃,覆盖低温、常温、高温场景 2. 测量精度 在 -10℃ ~ 80℃ 区间内,测量误差最大为 0.5℃ 3. 温度分辨率(可配置,决定测温精细度) 分辨率由配置…

2026/7/16 3:26:07阅读更多 →
C# 变量和类型

C# 变量和类型

int age 28; ""是赋值 整数类型double pi 3.14; 双精度浮点数float distance 21.124F; 单精度浮点数decimal preci 19.99M; 高精度十进制浮点数值类型,专门用来处理金钱、财务、计价、利息这类不能允许精度丢失的小数计算。bool …

2026/7/16 3:26:07阅读更多 →
【板子】tarjan,2-sat,缩点DAG

【板子】tarjan,2-sat,缩点DAG

const int MAXN 210; // n ≤ 100&#xff0c;两倍空间 vector<int> g[MAXN]; int dfn[MAXN], low[MAXN], scc_id[MAXN]; int stk[MAXN], top, ts, scc_cnt; bool ins[MAXN];void tarjan(int u) {dfn[u] low[u] ts;stk[top] u;ins[u] true;for (int v : g[u]) {if (…

2026/7/16 3:26:07阅读更多 →
【C++】类和对象--匿名对象

【C++】类和对象--匿名对象

目录匿名对象的语法与生命周期应用场景注意事项有时我们只需要临时调用某个类的成员函数一次&#xff0c;并不想为这个对象命名并维持其生命周期&#xff0c;这时可以使用匿名对象。 匿名对象的语法与生命周期 匿名对象就是定义时没有指定变量名的对象&#xff1a;ClassName(…

2026/7/16 4:31:28阅读更多 →
骁龙移动平台双卡双待DSDS的技术内幕(8): DSDS场景下的网络注册与PLMN选择策略

骁龙移动平台双卡双待DSDS的技术内幕(8): DSDS场景下的网络注册与PLMN选择策略

系列文章目录&#xff1a;本文是"骁龙移动平台双卡双待DSDS的技术内幕"系列的第八篇&#xff0c;深入分析双卡场景下网络注册的协调机制和PLMN选择策略。1. DSDS网络注册的特殊性 1.1 单卡vs双卡注册流程对比 单卡注册&#xff1a; 开机 → PLMN搜索 → 选择最优网络…

2026/7/16 4:31:28阅读更多 →
【毕设分享】django便利店外卖后台管理系统19650

【毕设分享】django便利店外卖后台管理系统19650

源码获取 私信联系我即可~ 大家点赞、收藏、关注、评论啦 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1f447;&#x1f3fb; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; java精品项目案例【3000套】 Python精品项目案例【500套】 Python精品…

2026/7/16 4:31:28阅读更多 →
C++实现IIR滤波器:从原理到工程实践

C++实现IIR滤波器:从原理到工程实践

1. 项目概述&#xff1a;从理论到代码的桥梁在信号处理的世界里&#xff0c;滤波器就像一位技艺精湛的调音师&#xff0c;能从纷繁复杂的信号中&#xff0c;精准地提取出我们想要的声音&#xff0c;或者滤除那些恼人的噪声。IIR滤波器&#xff0c;也就是无限脉冲响应滤波器&…

2026/7/16 4:31:28阅读更多 →
C++实现TSP贪心算法:从原理到工程实践详解

C++实现TSP贪心算法:从原理到工程实践详解

1. 项目概述&#xff1a;当贪心算法遇上旅行商如果你对算法竞赛、路径规划或者单纯想用C解决一个经典的组合优化问题感兴趣&#xff0c;那么“使用C实现TSP问题的贪心算法”这个项目绝对是一个绝佳的练手机会。TSP&#xff0c;全称旅行商问题&#xff0c;简单来说&#xff0c;就…

2026/7/16 4:31:28阅读更多 →
C++指针函数与函数指针:从内存原理到回调实战

C++指针函数与函数指针:从内存原理到回调实战

1. 项目概述&#xff1a;为什么指针函数是C的“任督二脉”&#xff1f;干了这么多年C&#xff0c;我见过太多新手甚至工作一两年的朋友&#xff0c;一提到“指针函数”和“函数指针”就犯迷糊&#xff0c;面试时更是支支吾吾。这玩意儿真没那么玄乎&#xff0c;它就像是C内力修…

2026/7/16 4:26:28阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比&#xff1a;全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时&#xff0c;第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件&#xff1a;5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL&#xff1a;跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述&#xff1a;为什么用遗传算法解5皇后问题&#xff0c;而不是直接回溯&#xff1f;我带过十几届算法课&#xff0c;也给不少初创团队做过AI架构咨询。每次讲到组合优化问题&#xff0c;学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块&#xff0c;用到了5.1V稳压管。电路接好&#xff0c;上电测试&#xff0c;万用表一量——输出居然只有4.7V。第一反应是稳压管坏了&#xff0c;换了一个新的&#xff0c;结果还是4.7V。这让我想起很多初学者都会遇到的困惑&#xff1a;明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →