昨天调个uni-app页面发现滚动有点卡,原来是用了太多复杂样式,尤其是box-shadow和border-radius这些玩意,在安卓低端机上真的会掉帧 试了下把能用view的地方换成text,再把长列表加上虚拟滚动,页面瞬间丝滑了!虚拟滚动这块uni-app自带的scroll-view组件其实就能搞,关键是要提前计算好高度。顺手贴个简单的实现方式吧:
还有个坑就是图片懒加载,uni-app的image组件自带lazy-load属性,但得配合小程序的原生懒加载机制才有效果 现在做项目都得先考虑性能,不然用户手机扛不住啊
// 虚拟滚动核心思路
// 只渲染可视区域内的item
// 通过scroll事件动态更新列表
onScroll(e) {
const scrollTop = e.detail.scrollTop
this.startIndex = Math.floor(scrollTop / this.itemHeight)
this.endIndex = Math.min(
this.startIndex + this.visibleCount,
this.totalData.length
)
}还有个坑就是图片懒加载,uni-app的image组件自带lazy-load属性,但得配合小程序的原生懒加载机制才有效果 现在做项目都得先考虑性能,不然用户手机扛不住啊
登录/注册