收藏
回答

关于微信小程序列表渲染的问题

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

[{id:1, title:'早报',content:'今早吃饭了....'},...]


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

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

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

回答关注问题邀请回答
收藏

1 个回答

  • 女娲的小泥人
    女娲的小泥人
    2017-10-23

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

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

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


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

    2017-10-23
    有用
    回复 1
    • 宇航
      宇航
      2019-01-08

      不对吧,当重新设置news后,用户同时滑动屏幕了,因为用户在浏览商品,那么此时是不是“重绘”了。

      2019-01-08
      回复
登录 后发表内容