关于微信小程序列表渲染的问题
发布于 5 年前 作者 fzhong 20201 次浏览 来自 问答

想问一下小程序的页面渲染机制,比如我现在有一个数组叫做 news,里面存储了50条文章的信息,类似于下面这样的:

[{id:1, title:‘早报’,content:‘今早吃饭了…’},…]

那现在我修改了第 i 条的 title 为晚报,然后重新 setData({news: news}), 

那这样的话,小程序是会重新渲染整个列表吗? 还是只对我修改过的那一条数据重新渲染?

如果这样会导致整个小程序的列表被重新渲染的话,那岂不是效率很低?

1 回复

实际上,他并不对整个列表进行重新渲染,而只是渲染当前屏幕内可展示的内容而已。

你调用  setData 仅仅是用于重新计算。相当于浏览器中的“重排”。

“重绘”操作并不总是主动调用的,大多情况下,只有当用户在屏幕上进行了操作(如,按下,移动,抬起等)之后才会进行“重绘”操作。

所以,鉴于此,可不用担心性能问题。

回到顶部