在 Svelte 5 中,内容可以通过[片段](snippet)的形式传递给组件,并使用[渲染标签](@render)进行渲染。 在传统模式下,组件标签内的内容被视为 *插槽内容*,可以通过组件使用 `` 元素进行渲染: ```svelte This is some slotted content ``` ```svelte ``` > \[!注意\] 如果您想渲染一个常规的 `` 元素,您可以使用 `` 。 ## 命名槽 组件除了默认插槽外,还可以有*命名*插槽。在父级侧,向元素、组件或组件标签内直接添加`slot="..."`属性,其中[``](legacy-svelte-fragment)。 ```svelte {#if open} This is some slotted content +++
+++ +++
+++
{/if} ``` 在子侧,添加相应的 `` 元素: ```svelte ``` ## 回退内容 如果未提供槽位内容,组件可以通过将内容放入 `` 元素中来定义回退内容: ```svelte This will be rendered if no slotted content is provided ``` ## 传递数据到槽位内容 插槽可以渲染零次或多次,并且可以通过 props 将值*返回*给父组件。父组件使用`let:`指令将值暴露给插槽模板。 ```svelte
    {#each items as data}
  • {/each}
``` ```svelte
{processed.text}
``` 通常的缩写规则适用 —— `let:item` 等同于 `let:item={item}`,并且 `` 等同于 ``。 命名槽位也可以暴露值。\``let:`\` 指令应用于具有 \``slot`\` 属性的元素。 ```svelte
    {#each items as item}
  • {/each}
``` ```svelte
{item.text}

Copyright (c) 2019 Svelte Industries

```