阅读(3593) (0)

Svelte 为 each 块添加 key 值

2023-02-20 17:35:40 更新

一般来说,当你修改each 块中的值时,它将会在 尾端 进行添加或删除条目,并更新所有变化, 这可能不是你想要的效果。

为此,我们为 each 块指定一个唯一标识符,作为 key 值:

{#each things as thing (thing.id)}
	<Thing current={thing.color}/>
{/each}

(thing.id) 告诉 Svelte 什么地方需要改变。

你可以将任何对象用作 key 来使用,就像Svelte 用 ​Map​ 在内部作为key一样,换句话说,你可以用 ​(thing)​ 来代替 ​(thing.id)​作为 key 值。但是,使用字符串或者数字作为 key 值通常更安全,因为这能确保它的唯一性,例如,使用来自API服务器的新数据进行更新时。