You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/documentation/tutorial/16-special-elements/01-svelte-self/text.md

26 lines
582 B

---
title: <svelte:self>
---
Svelte provides a variety of built-in elements. The first, `<svelte:self>`, allows a component to contain itself recursively.
It's useful for things like this folder tree view, where folders can contain _other_ folders. In `Folder.svelte` we want to be able to do this...
```svelte
{#if file.files}
<Folder {...file} />
{:else}
<File {...file} />
{/if}
```
...but that's impossible, because a module can't import itself. Instead, we use `<svelte:self>`:
```svelte
{#if file.files}
<svelte:self {...file} />
{:else}
<File {...file} />
{/if}
```