Skip to content

Latest commit

 

History

History
27 lines (22 loc) · 636 Bytes

File metadata and controls

27 lines (22 loc) · 636 Bytes
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}