有时你事先不知道需要渲染哪个元素。与其有一长串的 {#if ...} 块...
应用
{#if selected === 'h1'}
<h1>I'm a <code><h1></code> element</h1>
{:else}
<p>TODO others</p>
{/if}...我们可以使用 <svelte:element>
应用
<svelte:element this={selected}>
I'm a <code><{selected}></code> element
</svelte:element>this 值可以是任何字符串,或一个假值——如果它是假值,则不渲染任何元素。
上一页 下一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
const options = ['h1', 'h2', 'h3', 'p', 'marquee'];
let selected = $state(options[0]);
</script>
<select bind:value={selected}> {#each options as option} <option value={option}>{option}</option> {/each}</select>
{#if selected === 'h1'}<h1>I'm a <code><h1></code> element</h1>
{:else}<p>TODO others</p>
{/if}