HTMX - 屬性繼承
在大多數情況下,HTMX 屬性都是繼承的,如果您在父元素上應用任何屬性,那麼在大多數情況下(在感覺需要的情況下),子元素將自動繼承該屬性的行為。
該屬性繼承允許您將屬性提升到 DOM,以便避免程式碼重複。正如您在下面的程式碼示例中所看到的:
使用屬性繼承避免程式碼重複
在這裡,我們將有兩個元素,並且一個屬性會通用,即 hx-confirm 向用戶顯示確認對話方塊。
<button hx-delete="/account" hx-confirm="Are you sure?"> Delete My Account </button> <button hx-put="/account" hx-confirm="Are you sure?"> Update My Account </button>
因此,我們可以將這兩個元素包裝在父元素內,並在父元素上使用 hx-confirm 屬性。
<div hx-confirm="Are you sure?">
<button hx-delete="/account">
Delete My Account
</button>
<button hx-put="/account">
Update My Account
</button>
</div>
如果您需要在那其中新增一個或多個子元素,而您不希望該子元素繼承父元素的行為。那麼您只需在 hx-confirm 屬性上新增 unset 值即可。
<div hx-confirm="Are you sure?">
<button hx-delete="/account">
Delete My Account
</button>
<button hx-put="/account">
Update My Account
</button>
<button hx-confirm="unset" hx-get="/">
Cancel
</button>
</div>
停用屬性繼承
可以使用 hx-disinherit 屬性在元素和屬性基礎上分別停用屬性繼承。
要完全停用屬性繼承,您需要將 htmx.config.disableInheritance 配置變數設定為 true。這將停用繼承,並讓您透過使用 hx-inherit 屬性顯式使用繼承。
廣告