wx:key的作用:
如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如<input/>中输入的内容,<switch/>的选中状态),需要使用wx:key来指定列表中项目的唯一的标识符。
wx:key 的值以两种形式提供:
- 字符串或者数字,代表在for循环的array中item的某个property,该property的值需要是李表中唯一的字符串或者数字,且不能动态改变。**在写的时候,直接写这个property的名字就可以了,不需要写’item.property’的形式,并且不需要加中括号。**
- 保留关键字*this代表在for循环中的item本身,这种表示需要item本身是一个唯一的字符串或者数字,如:当数据改变触发渲染层重新渲染的时候,会校正带有key的组件,**框架会确保它们被重新排序,而不是重新创建**,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
- 即使列表中的组件没有发生状态改变,那么也建议使用’wx:key’,因为如果不使用,那么以后重新渲染的时候就会把之前组件销毁掉,然后重新创建,性能会降低。
如不提供wx:key,会报一个warning,如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。