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...
/// file: Folder.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>
:
/// file: Folder.svelte
{#if file.files}
+++<svelte:self {...file} />+++
{:else}
<File {...file} />
{/if}