2 个版本

0.2.1 2021 年 12 月 14 日
0.2.0 2021 年 12 月 13 日

#3 in #hobo

MIT 许可证

270KB
5K SLoC

hobo

Crate Info API Docs

hobo 是一个具有电池功能的 Rust 前端框架。适用于 稳定版 Rust
仍在开发中,尽管已经被 GR Digital 用于生产环境中
查看书籍!

显著特性

  • 无虚拟 DOM - HTML 元素只是添加到实体的组件,可以直接通过 web_sys::HtmlElement 访问
  • 无模型-视图-更新(即 Elm 架构)- 状态管理是手动的,通常通过实体-组件关系实现
  • 无 HTML 宏 - 只是 Rust 函数
  • 内置基于宏的样式,类似于 CSS-in-JS,但只是 Rust
  • 反应性支持 通过 rust-signals
  • 基于实体-组件的方法,允许在元素之间灵活地传播状态和凝聚力,无需耦合或全局存储或状态

预览

fn counter() -> impl hobo::Element {
    let counter = Mutable::new(0);

    cmp::div()
        .class((
            css::display!(flex),
            css::width!(400 px),
        ))
        .child(cmp::div()
            .text_signal(counter.signal().map(|value| format!("Counter value is: {}", value)))
        )
        .child(cmp::button()
            .text("increment")
            .on_click(move |_| *counter.lock_mut() += 1)
        )
}

依赖项

~16MB
~303K SLoC