hx-swap-oob
hx-swap-oob
μμ±μ μλ΅μ μΌλΆ μ½ν
μΈ λ₯Ό λμ μΈλΆμ DOM μ΄λκ°μ κ΅μ²΄νλλ‘ μ§μ ν μ μκ² ν©λλ€.
μ΄λ βOut of Bandβλ₯Ό μλ―Έν©λλ€. μ΄λ₯Ό ν΅ν΄ λ€λ₯Έ μμ μ
λ°μ΄νΈμ λν μλ΅μ νΈμΉνμ¬ μ
λ°μ΄νΈλ₯Ό μνν μ μμ΅λλ€.
λ€μ μλ΅ HTMLμ 보μΈμ:
<div>
...
</div>
<div id="alerts" hx-swap-oob="true">
Saved!
</div>
첫 λ²μ§Έ divλ μΌλ°μ μΈ λ°©μμΌλ‘ λͺ©ν λμμ κ΅μ²΄ν©λλ€. κ·Έλ¬λ λ λ²μ§Έ divλ IDκ° alerts
μΈ μλ μμλ₯Ό κ΅μ²΄νλ©°, κΈ°μ‘΄ κ΅μ²΄ λͺ©ν λμμ ν¬ν¨λμ§ μμ΅λλ€.
hx-swap-oob
μ κ°μ λ€μκ³Ό κ°μ μ μμ΅λλ€:
κ°μ΄ true
λλ outerHTML
(μ΄μ λλ±ν κ°)μ΄λ©΄ μμλ μΈλΌμΈμΌλ‘ λ°λλλ€.
swap κ°μ΄ μ§μ λλ©΄ ν΄λΉ κ΅μ²΄ μ λ΅μ΄ μ¬μ©λ©λλ€.
μ νμκ° μ§μ λλ©΄ ν΄λΉ μ νμμ μΌμΉνλ λͺ¨λ μμκ° κ΅μ²΄λ©λλ€. κ·Έλ μ§ μμ κ²½μ° μ μ½ν μΈ μ μΌμΉνλ IDλ₯Ό κ°μ§ μμκ° λ°λλλ€.
template
νκ·Έλ₯Ό μ¬μ©νμ¬ HTML μ¬μμ λ°λΌ DOMμμ λ
립μ μΌλ‘ μ‘΄μ¬ν μ μλ μμ μ ν
(<tr>
, <td>
, <th>
, <thead>
, <tbody>
, <tfoot>
, <colgroup>
, <caption>
λ° <col>
)μ μΊ‘μνν μ μλ€λ μ μ μ°Έκ³ νμΈμ.
λ€μμ μ΄λ¬ν λ°©μμΌλ‘ ν μ΄λΈ νμ out of bandκ° μΊ‘μνλ μμ μ λλ€:
<div>
...
</div>
<template>
<tr id="row" hx-swap-oob="true">
...
</tr>
</template>
μ΄λ¬ν template νκ·Έλ νμ΄μ§μ μ΅μ’ μ½ν μΈ μμ μ κ±°λλ€λ μ μ μ μνμΈμ.
κΈ°λ³Έμ μΌλ‘, μλ΅ λ΄ μ΄λμλ hx-swap-oob=
μμ±μ΄ μλ λͺ¨λ μμλ out of band κ΅μ²΄ λμμΌλ‘ μ²λ¦¬λ©λλ€. μ΄λ μμκ° μ£Όμ μλ΅ μμ λ΄μ μ€μ²©λ κ²½μ°λ ν¬ν¨λ©λλ€. μ΄λ μ‘°κ°(fragment)μ
oob-swap λμ λ° λ ν° μ‘°κ°μ μΌλΆλ‘ μ¬μ¬μ©ν μ μλ template fragmentsμ μ¬μ©ν λ λ¬Έμ κ° λ μ μμ΅λλ€. λ ν° μ‘°κ°μ΄ μ£Όμ μλ΅μΈ κ²½μ° λ΄λΆ μ‘°κ°λ μ¬μ ν oob swapμΌλ‘ μ²λ¦¬λμ΄μ DOMμμ μ κ±°λ©λλ€.
μ΄ λμμ htmx.config.allowNestedOobSwaps
λ₯Ό false
λ‘ μ€μ νμ¬ λ³κ²½ν μ μμ΅λλ€. μ΄ κ΅¬μ± μ΅μ
μ΄ false
μ΄λ©΄ μμκ° κΈ°λ³Έ μλ΅ μμμ μΈμ ν κ²½μ°μλ§ OOB κ΅μ²΄κ° μ²λ¦¬λκ³ , λ€λ₯Έ κ³³μ OOB κ΅μ²΄μ 무μλκ³ OOB κ΅μ²΄ κ΄λ ¨ μμ±μ΄ μ κ±°λ©λλ€.
hx-swap-oob
μ μμλμ§ μμ΅λλ€.