55 个版本

0.14.5 2022 年 4 月 21 日
0.13.5 2021 年 12 月 3 日
0.13.3 2021 年 10 月 19 日
0.12.0 2020 年 11 月 15 日
0.8.3 2019 年 11 月 30 日

#70 in #gui-framework


用于 nusa

MIT/Apache

23KB
568 代码行

Kagura

kagura 是一个面向组件的 GUI 框架。此框架具有在不同环境中使用的扩展性。

当您创建网页时,kagura 需要 nusanusa 通过虚拟 DOM 为 kagura 提供操纵 DOM 的功能。

文档

https://kagura.gitbook.io/kagura-nusa-en/

创建网页

kagura 需要 nusa 来生成网页,如下所示:

extern crate js_sys;
extern crate kagura;
extern crate nusa;
extern crate wasm_bindgen;
extern crate wasm_bindgen_futures;
extern crate web_sys;

use nusa::prelude::*;
use wasm_bindgen::prelude::*;

#[wasm_bindgen(start)]
pub fn main() {
    wasm_bindgen_futures::spawn_local(async {
        kagura::Runtime::run(nusa::dom_node::BasicDomNode::new(entry_point(), |_| {
            vec![Html::h1(
                Attributes::new(),
                Events::new(),
                vec![Html::text("Hello World")],
            )]
        }))
        .await;
    });
}

fn entry_point() -> web_sys::Node {
    web_sys::window()
        .unwrap()
        .document()
        .unwrap()
        .get_element_by_id("app")
        .unwrap()
        .into()
}

依赖项

~4–13MB
~157K SLoC