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/site/content/tutorial/16-special-elements/03-svelte-element/text.md

573 B

title
<svelte:element>

Sometimes we don't know in advance what kind of DOM element to render. <svelte:element> comes in handy here. Instead of a sequence of if blocks...

{#if selected === 'h1'}
	<h1>I'm a h1 tag</h1>
{:else if selected === 'h3'}
	<h3>I'm a h3 tag</h3>
{:else if selected === 'p'}
	<p>I'm a p tag</p>
{/if}

...we can have a single dynamic component:

<svelte:element this={selected}>I'm a {selected} tag</svelte:element>

The this value can be any string, or a falsy value — if it's falsy, no element is rendered.