微信小程序07:wx:key

  1. 为什么要使用wx:key

    如果列表中的项目的位置会动态变换,或者有新的项目加到列表中时,如果没有添加wx:key的话,项目原先的属性可能会发生改变,
    因为没有添加wx:key,所以属性修饰的是列表中对应位置的项目,而不是针对项目的本身,
    所以当有新的项目加入列表或者是列表中项目的位置发生改变时,原先修饰项目的属性可能不再是修饰该项目,

  2. 如何使用

  data: {
    lines:[
      { id: 5, unique: "u-5"},
      { id: 4, unique: "u-4" },
      { id: 3, unique: "u-3" },
      { id: 2, unique: "u-2" },
      { id: 1, unique: "u-1" }
    ]

  },
  tapEvent: function(event){
    var lines = this.data.lines;
    lines.splice(0, 0, { id: (this.data.num++), unique: "u-6"});
    this.setData({lines:lines})
  },

<switch wx:for="{{lines}}" style="display:block"
 wx:key="unique">{{item.id}}</switch>

<button bindtap="tapEvent">更新</button>

README:
效果:通过按下更新按钮,会把新的< switch >标签加入lines列表中,
注意:
如果没有添加wx:key,若选中一个switch再添加另一个switch进入列表时,原先选中的switch会变成没有选中;

  1. wx:key的值
    当item的为可变时,需要使用可以唯一标志Item的变量来作为wx:key的值;
    当item为数字或者是字符串的时候,直接使用*this作为wx:key的值;
	data:{
		 lines:[1,2,3,4,5],

    student:[
      {name:"zs", age:18},
      { name: "ls", age:19 },
      { name: "ww", age:20 }
     
    ]
}
<!--循环lines中的item(item为固定值)使用*this-->
<view wx:for="{{lines}}" wx:key="*this">{{item}}</view>
<view>--------------------------------------</view>
<!--循环student列表中的item(item为对象)使用具有唯一标志的变量-->
<view wx:for="{{student}}" wx:key="name">{{item.name}}</view>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值