全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[呼和浩特seo公司佳选久澳]小程序:使用 wx-key 提升 wx-for 的渲染效率

  


 

  

 

  这边文章的内容主要讲述在小程序中使用 wx:key 提升 wx:for 的渲染效率

  

 

  
 

  之所以加上 wx:key 会提升 wx:for 的渲染效率,原因是(我的初步理解)

  

  • 如果不加 wx:key◆•●, 在 setData 之后▽★•◇,如果 array 内的数据如果发生改变,[呼和浩特seo公司佳选久澳]会重新创建前端的渲染对象
  •  
  • 加上 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>★△;
</block>
data: {
 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.languages
	languages.push(language)
	this■□▪◇.setData({
		languages○□○■: languages
	})
}

 

  微信小程序开发工具只会报一个警告•-…▪,并不会导致程序崩溃

  

 

  VM6265◁☆-▷:2 Do not set same key {5} in wx:key

  

 

  比较奇怪的是-▽■,宁国市小程序开发哪家好[梅州seo公司惠联久澳]DVA框架统一处理所有页面的loading状态,这个警告只有在重新渲染时才会报,如果初始化时就使用同样的 key,并不会导致警告。

  相关视频连接:小程序开发教程

  以上就是小程序:使用 wx:key 提升 wx:for 的渲染效率的详细内容,更多请关注久澳传媒编程栏目其它相关文章□★◆!

[呼和浩特seo公司佳选久澳]小程序:使用 wx-key 提升 wx-for 的渲染效率

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。