3个版本 (破坏性更新)

0.3.0 2023年11月13日
0.2.0 2023年10月23日
0.1.0 2023年8月17日

HTTP服务器中排名1401

Download history 6/week @ 2024-03-09 2/week @ 2024-03-16 1/week @ 2024-03-23 22/week @ 2024-03-30 4/week @ 2024-04-06 1/week @ 2024-05-18 43/week @ 2024-05-25 3/week @ 2024-06-01 2/week @ 2024-06-08 8/week @ 2024-06-15 47/week @ 2024-06-22

每月下载量76

MIT/Apache

22KB
442 代码行

actix-htmx

简化与htmxActix Web一起工作的中间件。

crates.io Apache 2.0 or MIT licensed

actix-htmx允许您轻松地从Actix Web应用程序内部与htmx请求和响应头进行交互。


lib.rs:

Actix Web的htmx中间件。

actix-htmx提供了一种在actix web应用程序中轻松处理htmx的方法。使用HtmxMiddleware包装服务以启用htmx支持,并在您的处理器中访问Htmx提取器以获取当前htmx状态的信息。辅助方法也存在,使您能够设置htmx响应头,从而从服务器端代码中轻松触发htmx事件。

入门

在您的App上注册HtmxMiddleware

use actix_htmx::{Htmx, HtmxMiddleware, TriggerType};
use actix_web::{web, App, HttpResponse, HttpServer, Responder};

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .wrap(HtmxMiddleware)
            .service(web::resource("/").to(index))
    })
    .bind("0.0.0.0:8080")?
    .run()
    .await
}

async fn index(htmx: Htmx) -> impl Responder {
    if htmx.is_htmx {
        // build a partial view
    } else {
        // build a full view
    }
    htmx.trigger_event(
        "my_event".to_string(),
        Some(r#"{"level": "info", "message": "my event message!"}"#.to_string()),
        Some(TriggerType::Standard)
    );

    HttpResponse::Ok().content_type("text/html").body(// render the view)

}

依赖项

~17–29MB
~518K SLoC