Vertigo - reactive webassembly

Features

See Changelog for recent features.

Go to TUTORIAL if you want to try.

Example

Dependencies:

toml vertigo = "0.1.0-beta.3" vertigo-browserdriver = "0.1.0-beta.3"

Code:

```rust use vertigo::{html, Computed, Driver, VDomElement, Value}; use vertigobrowserdriver::{startbrowser_app};

[derive(PartialEq)]

pub struct State { pub count: Value, }

impl State { pub fn new(driver: &Driver) -> Computed { let state = State { count: driver.newvalue(0), }; driver.newcomputed_from(state) } }

pub fn render(appstate: &Computed) -> VDomElement { let state = appstate.get_value();

let increment = {
    let count = state.count.clone();
    move || count.set_value(*count.get_value() + 1)
};

let decrement = {
    let count = state.count.clone();
    move || count.set_value(*count.get_value() - 1)
};

html! {
    <div>
        <p>"Counter: " { *state.count.get_value() }</p>
        <button on_click={decrement}>"-"</button>
        <button on_click={increment}>"+"</button>
    </div>
}

}

[no_mangle]

pub fn startapplication() { startbrowser_app(State::new, render); } ```

Take a look at More examples here.

Demo App - installation and usage

Make sure you're using nigthly 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