Skip to content

列表渲染

就像在 Vue.js 中一样,在渲染列表时需要为每个元素指定唯一的 key

因此,不可以使用普通的循环来渲染列表。因为它们不接收 key

需要使用 _.for_.forTimes 等上下文你函数来渲染列表。

ts
import { bySelf } from "refina";

const items = ["Apple", "Banana", "Orange"];

$app([Basics], _ => {
  _.for(items, bySelf, item => {
    _.p(item);
  });
});

运行结果

key 生成器

_.for 的第二个参数是一个 key 生成器,用于为每个元素提供一个唯一的 key。

key 生成器可以是一个形式为 (item, index) => key 的函数,也可以是被作为 key 的元素属性的属性名。

Refina 提供了两个 key 生成器:

  • bySelf: 将元素本身作为 key。
  • byIndex: 将元素的索引作为 key。

重复一定次数

可以使用 _.forTimes 来将渲染重复数次。

_.forTimes 没有 key 生成器。它将索引作为 key。

ts
$app([Basics], _ => {
  _.forTimes(5, index => {
    _.p(`This is the ${index + 1}th paragraph.`);
  });
});

运行结果