小程序开发长列表渲染慢
2022-05-28 本文已影响0人
imniusir
最近使用uniapp开发了一个小程序项目,小程序项目中有一个功能中有个100多条的列表,这个列表总是展示很慢,刚开始我以为是后台返回结果慢,后来测试发现是渲染慢,网上搜索说是v-for渲染的问题,建议加上key属性。但是我加了key属性后并没有解决问题,进一步了解发现key属性只在二次渲染的时候起作用,于是我转念一想我把这100条数据分页加载不就行了,但是由于vue的渲染触发机制,分页加载并没有起作用,于是我进步探究,终于使用延时分页加载解决了这个问题,分享给大家这段代码。哈哈
navdelay(data,ipage,istart,delay){
//延时加载
if(istart != 0){
istart++
}
for(let i=istart;i<data.length;i++){
this.dzlrlist.push(data[i]);
istart = i
console.log(istart)
if(i!=0 && i%ipage == 0){
break
}
}
if(this.dzlrlist == data.length){
return
}
setTimeout(()=>{
this.navdelay(data,ipage,istart,delay)
},200+delay)
}