Expand description
Visit the website
See the github Readme for details
Counter Example
use seed::{prelude::*, *};
// `init` describes what should happen when your app started.
fn init(_: Url, _: &mut impl Orders<Msg>) -> Model {
Model { counter: 0 }
}
// `Model` describes our app state.
struct Model { counter: i32 }
// `Msg` describes the different events you can modify state with.
enum Msg {
Increment,
}
// `update` describes how to handle each `Msg`.
fn update(msg: Msg, model: &mut Model, _: &mut impl Orders<Msg>) {
match msg {
Msg::Increment => model.counter += 1,
}
}
// `view` describes what to display.
fn view(model: &Model) -> Node<Msg> {
div![
"This is a counter: ",
C!["counter"],
button![
model.counter,
ev(Ev::Click, |_| Msg::Increment),
],
]
}
#[wasm_bindgen(start)]
pub fn start() {
// Mount the `app` to the element with the `id` "app".
App::start("app", init, update, view);
}
Re-exports
pub use crate::app::App;
pub use crate::browser::dom::cast::to_drag_event;
pub use crate::browser::dom::cast::to_html_el;
pub use crate::browser::dom::cast::to_input;
pub use crate::browser::dom::cast::to_keyboard_event;
pub use crate::browser::dom::cast::to_mouse_event;
pub use crate::browser::dom::cast::to_select;
pub use crate::browser::dom::cast::to_textarea;
pub use crate::browser::dom::cast::to_touch_event;
pub use crate::browser::dom::cast::to_wheel_event;
pub use crate::browser::url::Url;
pub use crate::browser::util;
pub use crate::browser::util::body;
pub use crate::browser::util::canvas;
pub use crate::browser::util::canvas_context_2d;
pub use crate::browser::util::error;
Deprecatedpub use crate::browser::util::html_document;
pub use crate::browser::util::log;
Deprecatedpub use crate::virtual_dom::Attrs;
pub use crate::virtual_dom::EventHandler;
pub use crate::virtual_dom::Style;
pub use futures;
pub use wasm_bindgen_futures;
Modules
- Asynchronous values.
- Introduce
El
andTag
into the global namespace for convenience (El
will be repeated often in the output type of components), andUpdateEl
, which is required for element-creation macros, input event constructors, and theHistory
struct. Expose thewasm_bindgen
prelude. - This file exports helper macros for element creation, populated by a higher-level macro, and macros for creating the parts of elements. (attrs, style, events)
Macros
- Add classes into the element.
IF!(predicate => expression) -> Option<expression value>
- Provide a shortcut for creating attributes.
- classDeprecatedConvenience macro. Ideal when there are multiple classes, and no other attrs.
- Convenience macro, for brevity.
- A key-value pairs, where the keys and values must implement
ToString
. - Converts items to
Vec<Node<Ms>
and returns flattenedVec<Node<Ms>
. - Create struct
Urls
. It’s useful especially for buildingUrl
s in nested modules. - Provide a shortcut for creating styles.
- Allows to write nested macros.
Structs
- A Rust
Future
backed by a JavaScriptPromise
.
Traits
- An extension trait for
Future
s that provides a variety of convenient adapters. - Adapters specific to
Result
-returning futures
Functions
- Convenience function to access the web_sys DOM document.
- Create an element flagged in a way that it will not be rendered. Useful in ternary operations.
- Convenience function to access the web_sys history.
- set_intervalDeprecatedA high-level wrapper for
web_sys::window.set_interval_with_callback_and_timeout_and_arguments_0
: - set_timeoutDeprecatedSee
set_interval
- Runs a Rust
Future
on the current thread. - Convenience function to avoid repeating expect logic.