Vertigo - reactive webassembly

Features

See Changelog for recent features.

Go to TUTORIAL if you want to try.

Examples

Dependencies:

toml vertigo = "0.1"

Example 1:

```rust use vertigo::{bind, dom, DomElement, start_app, Value};

pub fn app() -> DomElement { let count = Value::new(0);

let increment = bind!(count, || {
    count.change(|value| {
        *value += 1;
    });
});

let decrement = bind!(count, || {
    count.change(|value| {
        *value -= 1;
    });
});

dom! {
    <div>
        <p>"Counter: " { count }</p>
        <button on_click={decrement}>"-"</button>
        <button on_click={increment}>"+"</button>
    </div>
}

}

[no_mangle]

pub fn startapplication() { startapp(app); } ```

Example 2:

```rust use vertigo::{cssfn, dom, DomElement, startapp, Value};

pub struct MyMessage { pub message: Value, }

impl MyMessage { pub fn mount(self) -> DomElement { dom! {

"Message to the world: " { self.message }

} } }

cssfn! { maindiv, " color: darkblue; " }

fn app() -> DomElement { let message = Value::new("Hello world!".to_string());

dom! {
    <div css={main_div()}>
        <MyMessage message={message} />
    </div>
}

}

[no_mangle]

pub fn startapplication() { startapp(app); } ```

Take a look at More examples here.

Demo App - installation and usage

Make sure you're using nightly version of rust:

Install cargo-make that takes care of all other dependencies:

Build and run project using:

Eventually terminal will let you know that app is available under http://localhost:3000/

If you want to play around with the code, you can make cargo to watch for your changes:

Keep in mind that you still need to refresh page in the browser after project recompiles.

To compile all examples run:

This will build examples in examples/build directory. Now point your browser to index.html file of a particular example.

A community, soon to grow