Skip to main content

<svelte:element>

<svelte:element this={expression} />

The <svelte:element> 元素允许您渲染在作者时间未知的内容,例如因为它来自 CMS。任何存在的属性和事件监听器都将应用于该元素。

仅支持 bind:this 绑定,因为 Svelte 内置的绑定不支持泛型元素。

如果 具有空值,则不会渲染该元素及其子元素。

如果 是一个 空元素(例如,br)并且 <svelte:element> 有子元素,则在开发模式下将抛出运行时错误:

<script>
	let tag = $state('hr');
</script>

<svelte:element this={tag}>
	This text cannot appear inside an hr element
</svelte:element>

Svelte 尽力从元素的周围推断正确的命名空间,但并不总是可行。您可以使用 xmlns 属性使其明确:

<svelte:element this={tag} xmlns="http://www.w3.org/2000/svg" />

需要是一个有效的 DOM 元素标签,类似于文本Svelte:head的标签将无法使用。

Edit this page on GitHub llms.txt