nusa

The features for kagura to generate web page by virtual-DOM.

Documents

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

Usage

mount to real-DOM

You can begin application with kagura::Runtime::run. nusa::dom_node::BasicDomNode is features to mount virtual-DOM to real-DOM.

```rust extern crate jssys; extern crate kagura; extern crate nusa; extern crate wasmbindgen; extern crate wasmbindgenfutures; extern crate web_sys;

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

[wasm_bindgen(start)]

pub fn main() { wasmbindgenfutures::spawnlocal(async { kagura::Runtime::run(nusa::domnode::BasicDomNode::new(entrypoint(), || { vec![Html::h1( Attributes::new(), Events::new(), vec![Html::text("Hello World")], )] })) .await; }); }

fn entrypoint() -> websys::Node { websys::window() .unwrap() .document() .unwrap() .getelementbyid("app") .unwrap() .into() } ```

with internal SVG

```rust extern crate jssys; extern crate kagura; extern crate nusa; extern crate wasmbindgen; extern crate wasmbindgenfutures; extern crate web_sys;

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

[wasm_bindgen(start)]

pub fn main() { wasmbindgenfutures::spawnlocal(async { kagura::Runtime::run(nusa::domnode::BasicDomNode::new(entrypoint(), || { vec![Html::element( "svg", Attributes::new() .string("width", "400") .string("height", "200") .string("viewBox", "0 0 400 200") .string("xmlns", "http://www.w3.org/2000/svg"), Events::new(), vec![Html::element( "rect", Attributes::new() .num("x", 10.0) .num("y", 10.0) .num("width", 380.0) .num("height", 180.0) .string("fill", "#e74c3c"), Events::new(), vec![], )], )] })) .await; }); }

fn entrypoint() -> websys::Node { websys::window() .unwrap() .document() .unwrap() .getelementbyid("app") .unwrap() .into() } ```