父组件代码(App.svelte)
<script>
let items = [
{id: 1, value: 'apple'},
{id: 2, value: 'banana'},
{id: 3, value: 'cherry'}
];
let totalLength = 0;
let subTotalLength = 0;
$: totalLength = items.reduce((acc, item) => acc + item.value.length, 0);
const handleSubLengthChange = (length) => {
subTotalLength += length;
console.log(`验证: totalLength=${totalLength}, subTotalLength=${subTotalLength}`);
};
</script>
{#each items as item}
<Item {item} on:subLengthChange={handleSubLengthChange}/>
{/each}
子组件代码(Item.svelte)
<script>
export let item;
let valueLength = 0;
$: valueLength = item.value.length;
const sendLength = () => {
$: dispatch('subLengthChange', valueLength);
};
$: item.value && sendLength();
</script>