微信小程序 笔记 wx:key用法
2021/6/12 12:27:19
本文主要是介绍微信小程序 笔记 wx:key用法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么时候用:数组内容会动态改变,要使用wx:key保持项目自己的特征和状态;不使用key的话会整个销毁再创建,导致性能下降
什么时候不需要:数组是静态的不需要改变,不关注顺序,就可以不适用
之前一直不理解wx:key是什么用法,举两个例子。
在没引入wx:key之前
- <!--my.wxml-->
- <view wx:for="{{lines}}">
- <switch>{{item.info}}</switch>
- </view>
- <button bindtap="tapfn">数据更新</button>
- //my.js部分
- data: {
- lines:[
- {
- id:1,
- info:"萨摩耶"
- },
- {
- id: 2,
- info: "哈士奇"
- },
- {
- id: 3,
- info: "阿拉斯加"
- }
- ]
- },
- tapfn:function()
- {
- var lines=this.data.lines
- lines.splice(0,0,{
- id:5,
- info:"田园犬"
- })
- this.setData({
- lines:lines
- })
- },
效果如下:
点击数据更新后
可以看出,这里发生了错误,选择的东西变成了萨摩耶
当我们引入wx:key后,以id作为wx:key
- <!--my.wxml-->
- <view wx:for="{{lines}}" wx:key="id">
- <switch>{{item.info}}</switch>
- </view>
- <button bindtap="tapfn">数据更新</button>
再进行相同的操作
这一次保持了正确,这正是wx:key的效果。
那么,当data字段里面是一个纯数组而不是对象,即没有id可以做wx:key时怎么办呢。下面的例子:
- <!--my.wxml-->
- <view wx:for="{{lines}}" wx:key="*this">
- <switch>{{item}}</switch>
- </view>
- <button bindtap="tapfn">数据更新</button>
- //my.js
- data: {
- lines:[1,2,3,4]
- },
- tapfn:function()
- {
- var lines=this.data.lines
- lines.splice(0,0,5)
- this.setData({
- lines:lines
- })
- },
效果如下:
点击后:
效果正确,所以在对数组对应的wx:key应该是*this
这篇关于微信小程序 笔记 wx:key用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享
- 2024-11-20微信小程序全栈教程:从零开始的全攻略
- 2024-11-19微信小程序全栈学习:从零开始的完整指南