亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

從零開始用 htmx 開發(fā)構(gòu)建動(dòng)態(tài) Web 應(yīng)用

admin
2025年9月2日 23:1 本文熱度 416

1. 什么是 htmx?

htmx 是一個(gè)輕量級(jí)的開源 JavaScript 庫(kù),它允許你直接通過 HTML 屬性(如 hx-gethx-post 等)來實(shí)現(xiàn) AJAX 請(qǐng)求、CSS 過渡、WebSocket、Server-Sent Events 等功能。換句話說,它讓 HTML 本身就能擁有現(xiàn)代前端的動(dòng)態(tài)交互能力,而無需額外編寫復(fù)雜的 JavaScript。

特點(diǎn):

  • 體積小巧(約 14 KB min.gz),零依賴;

  • 與 React、Vue 等框架相比,能大幅減少前端代碼量(有報(bào)告稱可減少約 67%)htmx.org。

為什么選擇 htmx?

  • 突破 HTML 的限制默認(rèn)情況下,只有 <a> 和 <form> 標(biāo)簽?zāi)苡|發(fā) HTTP 請(qǐng)求,而且會(huì)導(dǎo)致整個(gè)頁面刷新。htmx 通過擴(kuò)展屬性讓任意元素都能觸發(fā)各種 HTTP 請(qǐng)求,并能精確更新頁面局部。

  • 開發(fā)更簡(jiǎn)單交互邏輯通過 HTML 屬性配置,無需復(fù)雜的 JavaScript,保持代碼簡(jiǎn)潔、直觀。

  • 后端驅(qū)動(dòng)服務(wù)器返回 HTML 片段即可直接插入頁面,不需要 JSON + 前端模板解析,后端渲染即“即插即用”。


2. 快速入門

引入 htmx

在 HTML 中加入以下腳本即可(以 2.0.6 版本為例):

<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.6/dist/htmx.min.js"></script>

示例:點(diǎn)擊按鈕

<button hx-post="/clicked" hx-swap="outerHTML">  Click Me</button>

  • hx-post="/clicked":點(diǎn)擊按鈕時(shí)向 /clicked 發(fā)送 AJAX POST 請(qǐng)求;

  • hx-swap="outerHTML":用服務(wù)器返回的 HTML 替換當(dāng)前按鈕本身。

如果服務(wù)器返回:

<button>Clicked!</button>

頁面按鈕會(huì)變成 “Clicked!”。


3. 常見屬性

以下是 htmx 的核心屬性(來自官方文檔):

屬性說明
hx-get / hx-post / hx-put / hx-patch / hx-delete發(fā)送指定 HTTP 方法請(qǐng)求
hx-trigger指定觸發(fā)請(qǐng)求的事件(如 clickchange、keyup 等)
hx-target指定響應(yīng)內(nèi)容要插入的目標(biāo)元素
hx-swap定義內(nèi)容替換方式,如 innerHTML、outerHTML、beforeend 等
hx-select從響應(yīng) HTML 中選擇部分內(nèi)容插入
hx-swap-oob支持“帶外”更新(OOB swaps),允許更新頁面上其他位置的元素
htmx.config.*全局配置(跨域憑證、默認(rèn) swap 行為等)


4. 高級(jí)功能

除了基礎(chǔ) AJAX,htmx 還支持許多實(shí)用場(chǎng)景:

  • 無刷新表單提交hx-post + hx-swap

  • 延遲加載 / 無限滾動(dòng)hx-trigger="revealed" 實(shí)現(xiàn)滾動(dòng)到底部時(shí)加載

  • 內(nèi)聯(lián)編輯(Inline Editing):點(diǎn)擊后替換為輸入框,提交保存

  • 文件上傳、進(jìn)度條、模態(tài)對(duì)話框 等 UI 交互

  • 實(shí)時(shí)更新:支持 Server-Sent Events (SSE) 和 WebSocket

完整示例可查看 htmx 官方 Examples(https://htmx.org/examples/。


5. 實(shí)戰(zhàn):留言板(Node.js + htmx)

項(xiàng)目結(jié)構(gòu)

/├─ public/│   └─ index.html└─ server.js

server.js

const express = require('express');const app = express();app.use(express.urlencoded({ extendedtrue }));
let posts = [];
app.get('/'(req, res) => {  res.sendFile(__dirname + '/public/index.html');});
app.get('/posts'(req, res) => {  res.send(posts.map(p => `<div class="post">${p}</div>`).join(''));});
app.post('/post'(req, res) => {  const { message } = req.body;  posts.push(message);  res.send(`<div class="post">${message}</div>`);});
app.listen(3333() => console.log('Server started on port 3333'));

index.html

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <title>HTMX 留言板</title>  <script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.6/dist/htmx.min.js"></script></head><body>  <h1>留言板</h1>
  <form hx-post="/post" hx-target="#posts" hx-swap="beforeend">    <input type="text" name="message" placeholder="輸入留言..." required>    <button type="submit">提交</button>  </form>
  <div id="posts" hx-get="/posts" hx-trigger="load"></div></body></html>

功能說明

  • 頁面加載時(shí),#posts 會(huì)通過 hx-get="/posts" 拉取已有留言;

  • 表單提交后,hx-post="/post" 將留言發(fā)送到服務(wù)器,新內(nèi)容會(huì)自動(dòng)追加到 #posts 容器中。

整個(gè)過程無需任何額外的前端 JavaScript。


6. 總結(jié)與應(yīng)用場(chǎng)景

優(yōu)點(diǎn)

  • HTML + 后端渲染即可實(shí)現(xiàn)豐富交互,無需引入大型前端框架;

  • 小巧、零依賴,適合中小型項(xiàng)目或內(nèi)嵌功能;

  • 與服務(wù)端模板天然契合,利于 SEO 和安全性。

適用場(chǎng)景

  • CMS、后臺(tái)管理、業(yè)務(wù)系統(tǒng);

  • 已有 Django、Rails、Flask、Spring 等服務(wù)端渲染項(xiàng)目;

  • 希望快速增強(qiáng)頁面交互的傳統(tǒng)應(yīng)用。

注意事項(xiàng)

  • 更復(fù)雜的前端狀態(tài)管理,htmx 不如 React/Vue 靈活;

  • 高并發(fā)場(chǎng)景下,需關(guān)注后端渲染壓力;

  • 開發(fā)時(shí)常需判斷請(qǐng)求是否來自 htmx(HX-Request header),以決定返回整頁還是片段。


總結(jié)

htmx 讓 HTML 本身具備“超能力”: 無需大量 JavaScript,僅靠屬性配置和后端渲染,就能實(shí)現(xiàn) AJAX、動(dòng)畫、實(shí)時(shí)更新等功能。

對(duì)于 傳統(tǒng) SSR 項(xiàng)目 或 追求簡(jiǎn)潔開發(fā)體驗(yàn)的場(chǎng)景,htmx 都是一個(gè)極具吸引力的選擇。


閱讀原文:原文鏈接


該文章在 2025/9/3 10:10:02 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved