taro 列表渲染
Posted cag2050
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了taro 列表渲染相关的知识,希望对你有一定的参考价值。
元素的 key 在他的兄弟元素之间应该唯一
数组元素中使用的 key 在其兄弟之间应该是独一无二的。然而,它们不需要是全局唯一的。当我们生成两个不同的数组时,我们可以使用相同的 key
key 的取值
key 的取值必须同时满足三个条件:
- 稳定
- 可预测
- 唯一(相对于其他兄弟元素)
最好的 key 就是数组里的 ID(通常由后端生成),他能同时满足以上三个条件,同时也不需要自己去生成。
如果没有 ID,你能保证数组的元素某个键值字符串都是不同的(例如 item.title),那么使用那个字符串键值也可以。
如果源数据没有提供很好的 key 值,或者需要遍历的数组生成的,那么你最好在数据创建或者修改之后给他添加一个好的 key 值。
每一个在渲染结果上一致的组件应该对应一个相同的 key。因此使用数组的 index 或在数组渲染时随机生成一个 key 值(但你在创建数组时可以这么做)都是反优化,极端情况下甚至可能导致渲染出错。
与 React 的不同
在 React 中,JSX 是会编译成普通的 JS 来执行,每一个 JSX 元素,其实会通过 createElement 函数创建成一个 javascript 对象(React Element)。
但是 Taro 中,JSX 会编译成微信小程序模板字符串,因此你不能把 map 函数生成的模板当做一个数组来处理。当你需要这么做时,应该先处理需要循环的数组,再用处理好的数组来调用 map 函数。
以上是关于taro 列表渲染的主要内容,如果未能解决你的问题,请参考以下文章