关于小程序:for中:key标记的作用

wx:key的使用及wx:key的值

微信小程序wx:key以及wx:key=" *this"详解:

支付宝for标记

在支付宝和微信的for标记中都存在:key 标记。

1,是什么,有什么用

a:key
如果列表项位置会动态改变或者有新项目添加到列表中,
同时希望列表项保持特征和状态
(比如 <input/> 中的输入内容,<switch/> 的选中状态),
需要使用 a:key 来指定列表项的唯一标识。

a:key 的值以两种形式来提供:
字符串:代表列表项某个属性,属性值需要是列表中唯一的字符串或数字, 比如 ID,并且不能动态改变。
保留关键字
*this,代表列表项本身,并且它是唯一的字符串或者数字, 比如当数据改变触发重新渲染时,会校正带有 key 的组件,框架会确保他们重新被排序, 而不是重新创建,这可以使组件保持自身状态,提高列表渲染效率。 注意: 如不提供 a:key,会报一个 warning。 如果明确知道列表是静态,或者不用关注其顺序,则可以忽略。

简单来说:

列表的各项是有序的,会根据key来排序:
如果列表是静态的那么可以不指定key,系统默认排序。
如果是动态改变的,那么想要列表有序,需要设置key值。

指定的key必须是唯一的字符串或者数字,
如果数组的元素是字符串或者数字,那么可以用*this或者item(语法默认数组的当前项)的形式。
如果元素是对象那么需要指定对象中的一个值唯一属性为key,用以排序。

指定key对渲染的好处是,列表顺序改变时候,现有项不用重新创建,只改变顺序就行。

 

posted @ 2019-12-13 16:27  假程序猿  阅读(1007)  评论(0)    收藏  举报