Use svelte:self to render the current component recursively.
Use svelte:component to dynamically render a component.
Use svelte:element to dynamically render an element.
Use svelte:window to add an event listener to the window object, or bind local data to a value of window.
Use svelte:body and svelte:document to bind event listeners.
Use svelte:head to add contents in the <head> of the document.
Use svelte:options to specify compiler options for the component.
Use svelte:fragment fill a named slot without wrapping it in an HTML element.
{#each page.children as page}
<svelte:self class="child" {page} />
{/each}
<script>
import Todo from './Todo.svelte';
import Completed from './Completed.svelte';
export let todo;
$: component = todo.completed
? Completed : Todo;
</script>
<svelte:component this={component} {todo} />
<svelte:element this={level === 1 ? 'h1' : 'h2'}>
{title}
</svelte:element>
<script>
let innerWidth, innerHeight,
outerWidth, outerHeight,
scrollX, scrollY,
online;
</script>
<svelte:window on:keydown={handleKeydown} />
<svelte:window bind:scrollY={innerWidth} />
<svelte:window bind:scrollY={innerHeight} />
<!-- … -->
<svelte:body on:click={handleClick} />
<svelte:document on:click={handleClick} />
<svelte:head>
<title>Hello, world!</title>
</svelte:head>
<svelte:options immutable />
<svelte:fragment slot="footer" />
Subtracting from your list of priorities
is as important as adding to it.
</svelte:fragment>