实现思路
- 定义子组件:在子组件中,通过
<slot>
元素的context
属性来传递包含用户信息对象数组的数据。
- 父组件使用:父组件在使用子组件时,利用
<svelte:component>
或直接调用子组件标签,并使用<template>
标签接收子组件传递的数据,然后使用这些数据进行动态展示。
关键代码片段
子组件(例如UserList.svelte
)
<script>
// 假设这是子组件内部的用户信息数组
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 }
];
</script>
<slot {context: { users }}></slot>
父组件(例如App.svelte
)
<script>
let userContext;
</script>
<UserList>
<template let:context>
{#each context.users as user}
<div>
<p>Name: {user.name}</p>
<p>Age: {user.age}</p>
</div>
{/each}
</template>
</UserList>