List Rendering
Just like Vue.js, a key attribute is required when rendering a list.
So you can't use the for or while statement, because they don't have a key attribute.
Instead, you can use the _.for and _.forTimes context function.
ts
import { bySelf } from "refina";
const items = ["Apple", "Banana", "Orange"];
$app([Basics], _ => {
_.for(items, bySelf, item => {
_.p(item);
});
});Result
The Key Generator
The second parameter of _.for is a key generator, which is used to generate keys for each item.
The key generator can be a function in the form of (item, index) => key, or the key of the property to be used as the key.
There are also two provided key generators:
bySelf: use the item itself as the key.byIndex: use the index of the item as the key.
Render for Given Times
You can use _.forTimes to render for given times.
The key generator of _.forTimes is omitted, and the index of the item is used as the key.
ts
$app([Basics], _ => {
_.forTimes(5, index => {
_.p(`This is the ${index + 1}th paragraph.`);
});
});Result