小程序的setData操作真的学问深,有哪些细节需要注意呢?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1255个文字,预计阅读时间需要6分钟。
为什么不能频繁+setData先科普下+setData做的事件:在数据传输时,逻辑层会执行一次+JSON.stringify来去除+setData数据中不可传输的部分,之后将数据发送给视图层。同时,逻辑层还会+。
为什么不能频繁 setData
先科普下 setData 做的事情:
在数据传输时,逻辑层会执行一次 JSON.stringify 来去除掉 setData 数据中不可传输的部分,之后将数据发送给视图层。同时,逻辑层还会将 setData 所设置的数据字段与 data 合并,使开发者可以用 this.data 读取到变更后的数据。
因此频繁调用,视图会一直更新,阻塞用户交互,引发性能问题。
但频繁调用是常见开发场景,能不能频繁调用的同时,视图延迟更新呢?
参考 Vue,我们能知道,Vue 每次赋值操作并不会直接更新视图,而是缓存到一个数据更新队列中,异步更新,再触发渲染,此时多次赋值,也只会渲染一次。
本文共计1255个文字,预计阅读时间需要6分钟。
为什么不能频繁+setData先科普下+setData做的事件:在数据传输时,逻辑层会执行一次+JSON.stringify来去除+setData数据中不可传输的部分,之后将数据发送给视图层。同时,逻辑层还会+。
为什么不能频繁 setData
先科普下 setData 做的事情:
在数据传输时,逻辑层会执行一次 JSON.stringify 来去除掉 setData 数据中不可传输的部分,之后将数据发送给视图层。同时,逻辑层还会将 setData 所设置的数据字段与 data 合并,使开发者可以用 this.data 读取到变更后的数据。
因此频繁调用,视图会一直更新,阻塞用户交互,引发性能问题。
但频繁调用是常见开发场景,能不能频繁调用的同时,视图延迟更新呢?
参考 Vue,我们能知道,Vue 每次赋值操作并不会直接更新视图,而是缓存到一个数据更新队列中,异步更新,再触发渲染,此时多次赋值,也只会渲染一次。

