ចំពោះបញ្ជាតំរូវអោយធ្វើវដ្តកម្ម (loop) កញ្ចប់ SvelteKit បានផ្តល់លទ្ធភាពអោយយើងអាចប្រើប្រាស់បញ្ជា each ជាមួយនឹងកំរងទាំងឡាយ នៅក្នុងការធ្វើអោយធាតុ HTML មួយចំនួនដំណើរការវិលចុះវិលឡើងរហូតដល់ធាតុរបស់កំរងទាំងនោះត្រូវបានរាប់អស់។
<!--src/routes/+page.svelte-->
<script>
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
let selected = colors[0]
</script>
<h1 style="color: {selected}">Pick a colour</h1>
<div>
{#each colors as color, i}
<button
style="background: {color}"
on:click={() => selected = color}
>{i + 1}</button>
{/each}
</div>
<style>
div {
display: grid;
grid-template-columns: repeat(7, 1fr);
grid-gap: 5px;
max-width: 400px;
}
button {
aspect-ratio: 1;
border-radius: 50%;
}
</style>
បើសិនជាយើងមានបំណងចង់ផ្លាស់ប្តូរតំលៃផ្សេងៗនៅក្នុងកំរងទិន្នន័យនៅក្នុងកម្មវិធី SvelteKit ដោយប្រើប្រាស់ផ្នែកនៃបញ្ជា each យើងចាំបាច់ត្រូវផ្តល់តំលៃខុសៗគ្នាសំរាប់សំគាល់ធាតុនិមួយៗនៅក្នុងកំរងទិន្នន័យ។
<!--src/components/Thing.svelte-->
<script>
const emojis = {
apple: '🍎',
banana: '🍌',
carrot: '🥕',
doughnut: '🍩',
egg: '🥚'
}
export let name
const emoji = emojis[name]
</script>
<p>{emoji} = {name}</p>
<script>
import Thing from '../components/Thing.svelte'
let things = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'carrot' },
{ id: 4, name: 'doughnut' },
{ id: 5, name: 'egg' }
]
function handleClick() {
things = things.slice(1)
}
</script>
<button on:click={handleClick}>
Remove first thing
</button>
{#each things as thing (thing.id)}
<Thing name={thing.name} />
{/each}