9个版本

0.1.8 2024年2月11日
0.1.7 2024年2月11日
0.1.6 2023年10月22日
0.1.5 2023年8月15日

#652WebAssembly


用于 rooting-forms

ISC 许可证

23KB
481

这是一个用于管理WASM中与DOM元素关联的数据生命周期的库。这很有用,因为 wasm-bindgen/web_sys 将生命周期绑定到Rust作用域而不是JS垃圾回收 - 即使它们做到了(使用新的浏览器GC功能),将状态绑定到元素(如本例所示)会产生紧密绑定生命周期,这取决于您的用例,当使用GC时可以使状态推理更简单。

这是一个针对按需UI解决方案的库,而不是使用通常负责此操作的框架。

该库的核心对象是 El,它表示一个DOM元素及其关联的数据的生命周期。 El 作为对应 web_sys 元素类型的替代品,公开了大多数常用的修改方法。如果您需要访问底层元素,可以使用 .raw() 来实现。

使用 e.own(|e| some_data) 方法将数据附加到 El。返回的数据将在元素被(当从树中移除且没有其他引用存在时)销毁。

示例

pub fn main() {
    set_root(vec![
        el("button").text("Click me baby").on("click", |_| console_dbg!("Clicked"))
    ]);
}

在这个例子中,回调生命周期绑定到按钮的生命周期,当按钮从根中移除时会断开连接(尽管在这个例子中不会发生这种情况)。

链接

  • rooting-form - 从结构体生成表单的宏,包含验证和错误消息。

依赖项

~6.5–9MB
~177K SLoC