本指南的目的是提供从htmx 1.x迁移到2.x的说明。 我们非常重视向后兼容性,因此在大多数情况下,此迁移需要的工作量非常少,甚至不需要任何工作。
/dist/htmx.esm.js
/dist/htmx.amd.js
/dist/htmx.cjs.js
/dist/htmx.js
文件仍然可以浏览器加载hx-ws
和hx-sse
属性,请升级到扩展版本htmx.config.scrollBehavior
恢复为'smooth'
DELETE
请求使用表单编码的正文而不是参数,将
htmx.config.methodsThatUseUrlParams
恢复为["get"]
(有点疯狂,但根据规范,DELETE
应该
像GET
一样使用请求参数。)htmx.config.selfRequestsOnly
恢复为false
hx-on
属性转换为等效的hx-on:
形式: <button hx-get="/info" hx-on="htmx:beforeRequest: alert('Making a request!')
htmx:afterRequest: alert('Done making a request!')">
获取信息!
</button>
变为: <button hx-get="/info" hx-on:htmx:before-request="alert('Making a request!')"
hx-on:htmx:after-request="alert('Done making a request!')">
获取信息!
</button>
注意:由于HTML中属性不区分大小写,您必须使用事件名的短横线形式。
htmx.makeFragment()
方法现在总是返回一个DocumentFragment
,而不是Element
或DocumentFragment
selectAndSwap
方法,它已被移除并替换为swap
方法,
该方法可从内部和公共htmx API中使用要使用新方法进行交换,您只需使用
let content = "<div>Hello world</div>"; // 这是将被交换到目标中的HTML
let target = api.getTarget(child);
let swapSpec = api.getSwapSpecification(child);
api.swap(target, content, swapSpec);
swap
方法的文档可在JS API参考中找到
htmx 2.0不再支持IE,但htmx 1.x继续支持IE,并将支持 可预见的未来。
这是官方的htmx 1.x -> 2.x升级音乐: