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日 |
#652 在 WebAssembly
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