以前前端Web的功能非常簡單,靜態顯示數據或者將URL指向服務器,然后它將數據混合成HTML呈現在瀏覽器上。隨著應用場景的不斷更新,結合JavaScript的動態HTML開始快速發展,各種Web框架快速出現,比如JQuery,React,Vue,angular等等,盡管這些Web框架在構建結構化的Web應用程序方面表現出色,但是它們的復雜性也給追求簡單的開發者帶來了巨大的負擔。也讓整個前端架構變得越來越復雜,中間過程變得冗長或者不透明。
終于,化繁為簡的工具終于出現了:HTMX,是不是有點HTMLX的感覺?HTMX的終極目標目標,就是讓開發者在HTML中就能實現現代瀏覽器級的交互性,而無需使用JavaScript。它可以直接從HTML中訪問到現代瀏覽器的特性,它允許你在HTML代碼中直接處理AJAX請求、CSS動畫、WebSockets和服務端發送的事件。寫法非常簡單,直接在原HTML設置特殊屬性,無需額外編寫一行JavaScript代碼。
比如:AJAX請求,只需要在原來的組件上加上CURD屬性即可:
hx-get: 發出GET請求。hx-post: 發出POST請求。hx-put: 發出PUT請求。hx-patch: 發出PATCH請求。hx-delete: 發出DELETE請求。
舉例:
外層div組合,包裹內部3個button按鈕。在原來的div上加上hx-confirm就有了點擊確認提交的交互功能。內部三個button,加上hx-delete就會向/accout發起刪除請求。中間button加上hx-put即有了數據提交功能。最后的button,加上hx-confirm和hx-get就有了確認和調用根目錄請求的功能,是不是很容易?
HTMX核心庫非常小巧,僅需幾KB,可以輕松集成到現有項目中,無需引入龐大的前端框架。而且它不依賴于特定的后端技術或框架,可以與任何服務器端編程語言和框架一起使用。
與React對比,HTMX上手很快,可以直接從最最基礎的HTML直接平滑過渡。而React學習前,你除了HTML、CSS、JS,還需要理解 SPA、虛擬DOM、JSX、狀態管理、props、重新渲染等概念。此外React是基于組件的開發模式,使用JSX語法,結構化和模塊化。狀態管理和生命周期管理相對復雜,適用于大型應用。而HTMX開發過程更加直觀,適合小型應用或增量增強現有項目。
性能方面:React通過虛擬 DOM 更新,能高效渲染復雜的用戶界面。在頻繁更新和交互比較多的場景中表現良好。而HTMX從服務器獲取內容并更新部分HTML,適合無需頻繁更新的場合。對帶寬的消耗較低,但在處理復雜動態性時可能性能下降。
生態方面,目前React擁有龐大的生態系統,豐富的第三方庫(如 Redux、React Router 等)。HTMX雖小但是發展快,2023年迅速走紅后, 目前在GitHub上贏得了36K+星標。
總結
選擇 HTMX 還是 React 主要取決于項目的大小、復雜性及團隊的技術棧。如果需要構建復雜的用戶界面,React 是更合適的選擇;而如果希望通過簡單的方式增強 HTML,HTMX 則會更輕便。兩者各有千秋,可以根據具體需求來選擇。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.