Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
3e0e5947
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3e0e5947
编写于
3月 28, 2024
作者:
雪洛
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
perf: 优化长列表示例性能
上级
8a973878
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
9 deletion
+23
-9
pages/template/custom-long-list/custom-list-view.uvue
pages/template/custom-long-list/custom-list-view.uvue
+23
-9
未找到文件。
pages/template/custom-long-list/custom-list-view.uvue
浏览文件 @
3e0e5947
...
...
@@ -109,25 +109,39 @@
this.rearrangeQueue = [] as number[]
},
rearrange(scrollTop : number) {
this.offsetThreshold[0] = Math.max(scrollTop - this.scrollElementHeight * 5, 0)
const offsetStart =
this.offsetThreshold[0] = Math.max(scrollTop - this.scrollElementHeight * 5, 0)
this.offsetThreshold[1] = Math.max(scrollTop - this.scrollElementHeight * 3, 0)
this.offsetThreshold[2] = Math.min(scrollTop + this.scrollElementHeight * 4, this.placeholderHeight)
this.offsetThreshold[3] = Math.min(scrollTop + this.scrollElementHeight * 6, this.placeholderHeight)
const offsetEnd =
this.offsetThreshold[3] = Math.min(scrollTop + this.scrollElementHeight * 6, this.placeholderHeight)
const items = [] as any[]
const defaultItemSize = this.defaultItemSize
const cachedSize = this.cachedSize
const list = this.list
let tempTotalHeight = 0
let containerTop = 0
for (let i = 0; i < this.list.length; i++) {
const item = this.list[i]
let itemSize = this.defaultItemSize
const cachedItemSize = this.cachedSize.get(item)
let start = false, end = false
for (let i = 0; i < list.length; i++) {
const item = list[i]
let itemSize = defaultItemSize
const cachedItemSize = cachedSize.get(item)
if (cachedItemSize != null) {
itemSize = cachedItemSize
}
tempTotalHeight += itemSize
if (tempTotalHeight >= this.offsetThreshold[0] && tempTotalHeight <= this.offsetThreshold[3]) {
items.push(item)
} else if (tempTotalHeight < this.offsetThreshold[0]) {
if (end) {
continue
}
if (tempTotalHeight < offsetStart) {
containerTop = tempTotalHeight
} else if (tempTotalHeight >= offsetStart && tempTotalHeight <= offsetEnd) {
if (start == false) {
start = true
}
items.push(item)
} else {
if (!end) {
end = true
}
}
}
this.placeholderHeight = tempTotalHeight
...
...
dcloud_wdl
@m0_56042370
mentioned in commit
4fa1ffd4
·
3月 28, 2024
mentioned in commit
4fa1ffd4
mentioned in commit 4fa1ffd4852c79cf380304bda7bfc9231c20e882
开关提交列表
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录