E企盈营销工具技术服务商 热线:4006-838-530

微信小程序:使用wx:key提升wx:for的渲染效率

E企盈直播平台营销卖货系统

Now you can provide attr “wx:key” for a “wx:for” to improve performance之所以加上 wx:key 会提升 wx:for 的渲染效率,原因是(我的初步理解)如果不加 wx:key, 在 setData 之后,如果 array 内的数据如果发生改变,会重新创建前端的渲染对象加上 wx:key,重新渲染时,只是将对应的对象重新排序。未发生变化的对象,不会重新创建参考官方的解释当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。需要验证的问题加上 wx:key 之后,会根据给定的 key 进行排序么?写个简单的测试页面block wx:for=”{{languages}}” wx:for-item=”language” wx:key=”id”  text class=”log-item”{{ language.id }} . {{ language.name }}/text/blockdata: {  languages: [    {id: 1, name: ‘php’},    {id: 4, name: ‘javascript’},    {id: 3, name: ‘golang’},    {id: 2, name: ‘python’},    {id: 5, name: ‘java’},  ],},从测试结果来看,并不会影响到排序。key 重名时是否会报错data: {  languages: [    {id: 1, name: ‘php’},    {id: 4, name: ‘javascript’},    {id: 3, name: ‘golang’},    {id: 2, name: ‘python’},    {id: 5, name: ‘java’},  ],},click: function () {let language = {id: 5, name: ‘kotlin’}let languages = this.data.languageslanguages.push(language)this.setData({languages: languages})}微信小程序开发工具只会报一个警告,并不会导致程序崩溃VM6265:2 Do not set same key {5} in wx:key比较奇怪的是,这个警告只有在重新渲染时才会报,如果初始化时就使用同样的 key,并不会导致警告。转自:https://www.sunzhongwei.com/wechat-small-program-use-the-wx-key-promotion-wx-for-rendering-efficiency

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序:使用wx:key提升wx:for的渲染效率
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏