Store
Stores wrap structured reactive state — mutations go through update or set, and the whole object serializes as one payload blob.
use_store
#[derive(Clone, Serialize, Deserialize)]
struct User {
name: String,
email: String,
}
let user = use_store(User {
name: "Ada".into(),
email: "ada@example.com".into(),
});
user.update(|u| u.name = "Augusta".into());
user.set(User { name: "New".into(), email: u.email.clone() });In templates
view! {
<p>{user.signal()}</p>
<input value={user.get().name.clone()} />
}NoSerialize
Mark fields that must not cross the resumability boundary — handles, callbacks, or non-serializable server state.
#[derive(Clone, Serialize, Deserialize)]
struct AppState {
pub count: u32,
#[serde(skip)]
pub db: NoSerialize<DbPool>,
}Store vs Signal
Use use_signal for scalar values. Use use_store when you have structured objects with multiple fields that update together.