uni-app 微信小程序 Skyline 长列表虚拟化组件 list-builder 使用指南
uni-app 微信小程序 Skyline 长列表虚拟化组件 list-builder 使用指南【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-app本篇指南以仓库文档 docs/component/list-builder.md 为骨架系统讲解 uni-app 项目中微信小程序 Skyline 专用长列表虚拟化组件list-builder的兼容性边界、全部属性语义、static/dynamic 两种渲染模式、列表项创建与回收事件机制并结合仓库中list-view、grid-builder等列表类组件的实现与文档帮助你判断何时选用list-builder以及如何写出高性能、可复用的长列表页面。list-builder 是什么list-builder是微信小程序Skyline 渲染引擎提供的高性能长列表组件在 uni-app 中被归类为「微信专用组件 → Skyline」分组参见仓库组件导航 docs/component/_sidebar.md 中的微信专用组件 Skyline list-builder条目。它的核心价值在于列表项虚拟化与回收复用在渲染超长列表时Skyline 只维护屏幕可视区域附近的少量列表项节点配合itembuild/itemdispose事件对列表项进行「创建 - 回收 - 复用」的循环管理从而避免为成千上万条数据创建海量原生节点导致的内存膨胀与滚动卡顿。需要特别说明的是与list-viewuni-app 内置实现、支持 App/Web 等多端不同list-builder在当前仓库源码中没有独立实现代码——它属于 uni-app 编译到微信小程序后透传给 Skyline 原生渲染层的组件因此其行为、事件与能力边界以微信小程序 Skyline 平台为准。这也意味着它的兼容性严格受限详见下文。兼容性仅在微信小程序可用根据原文档 docs/component/list-builder.md 的兼容性矩阵| Web | 微信小程序 | Android | iOS | HarmonyOS | | :- | :- | :- | :- | :- | | x | 4.41 | x | x | x |解读仅微信小程序端支持且基础库版本要求 4.41 及以上Web、App-Android、App-iOS、HarmonyOS 端均不支持标记为x即不可用该组件运行前提是页面开启Skyline 渲染在pages.json中为页面配置 Skyline 渲染方式脱离 Skyline 环境无法使用使用前应做好条件编译隔离避免在非微信小程序端引用该组件导致编译或运行异常。属性详解list-builder共提供 6 个属性原文档完整属性表如下| 名称 | 类型 | 兼容性 | 描述 | | :- | :- | :-: | :- | | padding | Array | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(Array)长度为 4 的数组按 top、right、bottom、left 顺序指定内边距 | | type | string | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(string)类型默认为定高模式 | | list | Array | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(Array)需要用于渲染的列表 | | child-count | Array | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(Array)完整列表的长度如果不传则取 list 的长度作为其值 | | child-height | Array | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(Array)列表项的高度当 type 为 static 时必须传入 | | itembuild | eventhandle | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(eventhandle)列表项创建时触发event.detail {index}index 即被创建的列表项序号 | | itemdispose | eventhandle | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x |(eventhandle)列表项回收时触发event.detail {index}index 即被回收的列表项序号 |list驱动渲染的数据源list是组件渲染所需的列表数据类型为 Array。它决定了列表要渲染哪些内容与child-count配合构成虚拟化渲染的基础list中每一项对应一个列表项slot 中的内容会被渲染到每个列表项内与常规v-for列表不同list-builder不会一次性为list的全部数据创建节点而是按需创建可视范围内的列表项。child-count声明完整列表长度child-count表示完整列表的长度。原文档明确如果不传则取list的长度作为其值。这一点在「分批加载 / 无限滚动」场景下非常关键当数据是异步分批拉取时可以先通过child-count声明一个比当前list实际长度更大的「占位总数」让 Skyline 预先按该长度规划滚动区域再逐步向list追加真实数据避免滚动条长度随数据增长不断跳动。由于它直接参与滚动区域高度的预估取值应尽量准确否则可能出现滚动到底却无更多内容、或未到底就触发触底加载的问题。child-heightstatic 定高模式的高度表child-height是数组类型逐项声明列表项的高度。注意原文档的强制约束当type为static时必须传入。它是 static 模式下 Skyline 计算滚动区域总高度的依据所有列表项等高传数组时按对应索引取值由于 static 模式不需要测量每个节点的真实高度省去了布局测量环节是性能最高的一种模式若列表项实际渲染高度与child-height声明不一致会造成滚动定位偏差因此声明值必须与真实 item 高度严格一致。padding内边距padding为长度为 4 的数组按 top、right、bottom、left 顺序指定内边距即[top, right, bottom, left]。它作用于列表整体内容区在长列表滚动时保持列表项与容器边缘的间距。type渲染模式开关type为 string 类型默认值为定高模式即static。取值与描述见原文档| 合法值 | 兼容性 | 描述 | | :- | :-: | :- | | static | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x | 定高模式所有列表项等高需要传入 child-height | | dynamic | Web: x; 微信小程序: 4.41; Android: x; iOS: x; HarmonyOS: x | 不定高模式 |两种模式的选型建议static定高模式所有列表项高度一致如统一为 100rpx 的纯文本行、商品卡固定高。此模式必须配置child-height性能最佳适合超高量级上万条的纯展示列表dynamic不定高模式列表项高度不固定由内容撑开如富文本、图文混排、评论回复等。此模式需要 Skyline 动态测量每个列表项高度无需也不能依赖 child-height 的等高假设性能低于 static但更灵活。事件机制列表项的创建与回收list-builder暴露两个关键事件用于配合虚拟化池管理列表项节点| 事件 | 触发时机 | event.detail | | :- | :- | :- | | itembuild | 列表项创建时触发 |{ index }index 为被创建的列表项序号 | | itemdispose | 列表项回收时触发 |{ index }index 为被回收的列表项序号 |这两个事件的价值在于按需初始化/销毁资源在itembuild中加载图片、建立订阅等重量级资源在itemdispose中释放资源、取消定时器避免列表项滚出屏幕后资源滞留造成内存泄漏状态重置列表项被回收后其 DOM/组件状态可能残留再次itembuild复用时需要依据 index 重新绑定数据——这一点与仓库中list-view的复用注意事项一致仓库文档 docs/component/list-view.md 明确提示「list-item 内部组件如果有内部状态不受绑定数据影响则需要依赖 onReuse、onRecycle 等生命周期函数进行状态重置否则会出现状态错乱」list-builder的itembuild/itemdispose本质上承担了同一职责性能统计与调试通过记录 build/dispose 频次可以观测列表项复用率验证虚拟化是否生效。典型用法示意uni-app 微信小程序端Skyline 渲染template list-builder typestatic :listlist :child-counttotal :child-height[100] :padding[0, 16, 0, 16] itembuildonItemBuild itemdisposeonItemDispose view classrow wx:for{{list}} wx:keyindex{{item}}/view /list-builder /template与 uni-app 其他列表组件的分工在仓库组件体系中长列表场景存在多个候选组件理解它们的分工才能做出正确选型| 组件 | 归属 | 渲染方式 | 适用场景 | | :- | :- | :- | :- | | list-builder | 微信专用组件Skyline | Skyline 虚拟化列表项创建/回收由 itembuild/itemdispose 驱动 | 微信小程序端、Skyline 渲染下的超高量级长列表 | | list-view / list-item | 内置列表容器 | uni-app 多端内置实现App 端基于复用回收docs/component/list-view.md | App/Web/微信等多端通用的长列表支持下拉刷新、吸顶、嵌套滚动 | | grid-builder | 微信专用组件Skyline | Skyline 网格虚拟化支持 aligned / masonry 两种布局 | 微信端网格列表、瀑布流docs/component/grid-builder.md | | waterflow | 内置瀑布流容器 | 多列瀑布流布局 | 多列瀑布流场景docs/component/waterflow.md | | scroll-view | 可滚动视图容器 | 常规滚动无回收复用 | 数据量不大、非长列表的滚动场景 |选型结论微信小程序 Skyline 超长单列列表优先list-builder它比list-view更进一步地把虚拟化下沉到 Skyline 渲染层节点创建/回收由底层托管需要跨端App/Web统一实现选list-view仓库文档 docs/component/list-view.md 指出其 App 端基于复用回收实现长列表渲染资源复用且支持下拉刷新、吸顶sticky-header/sticky-section、嵌套滚动等丰富能力网格/多列微信端用grid-builderaligned 等高网格 / masonry 瀑布流跨端用waterflow。使用注意事项与最佳实践结合原文档约束与仓库列表类组件的通用经验使用list-builder时应注意环境前提仅微信小程序 4.41 且页面启用 Skyline 渲染时可用其他端一律不支持务必用条件编译#ifdef MP-WEIXIN包裹static 模式必须配置 child-height漏传会导致高度计算缺失、滚动区域异常声明高度须与真实 item 高度一致child-count 与 list 的关系默认取list.length做分批加载时先声明占位总数再逐步追加数据保证滚动条稳定善用 itembuild/itemdispose 做资源管理把图片加载、数据订阅放在 build 时把释放动作放在 dispose 时参照 docs/component/list-view.md 中关于复用状态重置的建议防止复用后状态错乱不要放大图、减少 item 内节点数量仓库 docs/component/list-view.md 的列表性能优化经验同样适用——减少列表项中元素数量、避免过多圆角阴影、为不监听事件的节点设置 flatten 拍平属性能显著提升滚动帧率高度不固定的内容用 dynamic 模式强行把所有内容塞进 static 模式并谎报高度会出现滚动定位偏差与内容重叠。延伸阅读docs/component/list-builder.md本主题原始文档含完整属性表与兼容性矩阵docs/component/list-view.mduni-app 内置长列表容器 list-view / list-item 的复用回收机制、下拉刷新与嵌套滚动docs/component/grid-builder.md微信 Skyline 网格虚拟化组件aligned / masonry 布局docs/component/waterflow.md跨端多列瀑布流容器docs/component/scroll-view.md常规可滚动容器非长列表场景的首选docs/component/_sidebar.md组件文档总导航可在「微信专用组件 → Skyline」分组下查看 list-builder 的定位【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Python体育用品商城系统设计:商品分类与订单管理关键技术

Python体育用品商城系统设计:商品分类与订单管理关键技术

简介:一份基于Python的线上体育用品购物平台设计与实现的完整项目文档,适合具备Python编程基础、希望系统掌握Flask框架、MySQL数据库和Tkinter图形界面开发的在校学生、初级开发者及项目实践人员。文档从项目背景、系统架构、功能模块到前后端代码实现均…

2026/9/19 20:49:21 阅读更多 →
drizzle-typebox 0.3.2 发布解析:getColumns、handleColumns 与 handleEnum 的内部工具函数正式导出

drizzle-typebox 0.3.2 发布解析:getColumns、handleColumns 与 handleEnum 的内部工具函数正式导出

drizzle-typebox 0.3.2 发布解析:getColumns、handleColumns 与 handleEnum 的内部工具函数正式导出 【免费下载链接】drizzle-orm ORM 项目地址: https://gitcode.com/gh_mirrors/dr/drizzle-orm 本篇技术指南以 drizzle-typebox 0.3.2 的版本说明为核心展开…

2026/9/19 20:49:21 阅读更多 →
LeetCode 457 环形数组是否存在循环:图论建模、暴力搜索与原地标记三种解法的完整剖析

LeetCode 457 环形数组是否存在循环:图论建模、暴力搜索与原地标记三种解法的完整剖析

LeetCode 457 环形数组是否存在循环:图论建模、暴力搜索与原地标记三种解法的完整剖析 【免费下载链接】leetcode LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。) 项目地址: https://gitc…

2026/9/19 20:49:21 阅读更多 →

最新新闻

Hydra:企业级AI实验操作系统的配置驱动架构解析

Hydra:企业级AI实验操作系统的配置驱动架构解析

1. 项目概述:这不是又一个配置工具,而是实验工程化的底层操作系统Hydra 不是 Python 里那个用来读 YAML 文件的“小工具”,它是 Meta 内部打磨近五年、支撑 Facebook 全量 AI 实验调度的配置驱动型实验操作系统。我第一次在 PyTorch Lightnin…

2026/9/21 2:43:30 阅读更多 →
运维大模型部署实战:从原理到上线避坑指南

运维大模型部署实战:从原理到上线避坑指南

最近各大运维群都在刷“大模型”三个字,一开始我也没太当回事。直到有天领导把我叫过去,说公司想上一个大模型项目,让我先调研一下可行性。我当时心里直犯嘀咕:我是运维,不是算法工程师,大模型关我什么事&a…

2026/9/21 2:43:30 阅读更多 →
用SQL调用AI Agent:让数据库成为企业智能分析入口

用SQL调用AI Agent:让数据库成为企业智能分析入口

上个月业务方找我要数,提了一个让我头大的需求:“把华东区上季度签单客户都拉出来,顺便标出哪些是从竞品那边抢回来的,再分析一下这批客户的采购偏好。”放在以前,光是“从竞品流失抢回”这个判断,就得先跟…

2026/9/21 2:43:30 阅读更多 →
Wasmtime 编译器混沌模式探秘:cranelift-control 控制平面的设计与 fuzzing 实践

Wasmtime 编译器混沌模式探秘:cranelift-control 控制平面的设计与 fuzzing 实践

Wasmtime 编译器混沌模式探秘:cranelift-control 控制平面的设计与 fuzzing 实践 【免费下载链接】wasmtime A lightweight WebAssembly runtime that is fast, secure, and standards-compliant 项目地址: https://gitcode.com/gh_mirrors/wa/wasmtime 导读…

2026/9/21 2:43:30 阅读更多 →
labelme 实例分割标注与 VOC/COCO 数据集转换实战指南

labelme 实例分割标注与 VOC/COCO 数据集转换实战指南

labelme 实例分割标注与 VOC/COCO 数据集转换实战指南 【免费下载链接】labelme Image annotation with Python. Supports polygon, rectangle, circle, line, point, and AI-assisted annotation. 项目地址: https://gitcode.com/gh_mirrors/la/labelme 本指南以仓库中…

2026/9/21 2:43:30 阅读更多 →
DeepSeek 报错 unknown variant ‘system‘?TaoToken 这样改配置

DeepSeek 报错 unknown variant ‘system‘?TaoToken 这样改配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 2:42:30 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →