📦 安装方式

CDN(推荐快速体验)

html
<script src="https://unpkg.com/htmx.org@1.9.12"></script>

npm

bash
npm install htmx.org

下载文件

bash
# 下载到项目中
curl -o htmx.min.js https://unpkg.com/htmx.org@1.9.12/dist/htmx.min.js

🚀 第一个示例

html
<!DOCTYPE html>
<html>
<head>
  <script src="https://unpkg.com/htmx.org@1.9.12"></script>
</head>
<body>
  <!-- 点击按钮,从服务器获取内容 -->
  <button hx-get="https://httpbin.org/html" 
          hx-target="#result">
    点击获取内容
  </button>
  
  <div id="result"></div>
</body>
</html>

📝 基本用法

GET 请求

html
<button hx-get="/api/users">
  获取用户列表
</button>

POST 请求

html
<form hx-post="/api/users">
  <input name="name" placeholder="姓名">
  <input name="email" placeholder="邮箱">
  <button type="submit">创建用户</button>
</form>

触发事件

html
<!-- 点击触发(默认)-->
<button hx-get="/data">点击</button>

<!-- 加载时触发 -->
<div hx-get="/data" hx-trigger="load"></div>

<!-- 输入时触发 -->
<input hx-get="/search" hx-trigger="input">

<!-- 滚动到视口时触发 -->
<div hx-get="/more" hx-trigger="revealed"></div>

🔧 后端配合

HTMX 需要后端返回 HTML 片段:

Python Flask 示例

python
from flask import Flask, request

app = Flask(__name__)

@app.route('/search')
def search():
    q = request.args.get('q', '')
    # 返回 HTML 片段
    return f'<ul><li>结果1: {q}</li></ul>'

Node.js Express 示例

javascript
app.get('/search', (req, res) => {
  const q = req.query.q || '';
  // 返回 HTML 片段
  res.send(`<ul><li>结果1: ${q}</li></ul>`);
});

⚠️ 注意事项

  • 后端返回 HTML 片段,不是 JSON
  • 设置正确的 Content-Type: text/html
  • CORS:跨域请求需要配置 CORS
  • 调试:使用浏览器开发者工具查看网络请求