<svelte:element>
<svelte:element this={expression} />
<svelte:element>
元素讓您可以渲染在撰寫時未知的元素,例如來自 CMS 的元素。任何屬性和事件監聽器都會應用到該元素。
唯一支援的綁定是 bind:this
,因為 Svelte 的內建綁定不適用於通用元素。
如果 this
的值為 nullish,則不會渲染該元素及其子元素。
如果 this
是一個空元素 (例如,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" />
this
必須是有效的 DOM 元素標籤,像 #text
或 svelte:head
之類的東西將無法運作。
上一個 下一個