1个不稳定版本

0.1.0 2022年11月18日

#614WebAssembly

MIT/Apache

135KB
1.5K SLoC

用Rust编写的即时模式Web前端库。

它构建VDOM,以减少不必要的DOM操作,但因为它在每次任何更改执行时都会运行,所以它允许一个简单的编程模型,没有消息传递/回调/信号,就像EGUI。

渲染函数用于创建初始网页,然后为每个事件调用两次

  • 一次用于计算事件的影响
  • 再次修改状态(变量)以渲染发生的变化

一个简单的程序来说明用法

(在 examples/demo 目录中)

use edom;
use wasm_bindgen::prelude::wasm_bindgen;

#[wasm_bindgen(start)]
pub fn demo() {
    let mut name = "Arthur".to_string();
    let mut age:f64 = 42.0;
    edom::wasm::render(move |mut root| {
        root.h1().text("My edom application");
        root.div(|div| {
            div.text("Your name: ");
            div.text_input(&mut name);
        });
        root.div(|div| {
            div.range_input(&mut age, 0.0, 120.0);
            div.number_input(&mut age).min(0.0).max(120.0);
            div.text("age");
        });
        if root.button("Click each year").clicked() {
            age+=1.0;
        }
        root.br();
        root.text(format!("Hello '{}', age {}", name, age).as_str());
    });
}

Demo

对于更复杂的示例,请查看 TODOMVC

依赖项

~10MB
~184K SLoC