From cd54f5953bc5e948c2ccea25a0d7b54ae112b1a2 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Tue, 21 Apr 2026 17:07:48 -0700 Subject: [PATCH] update the dioxus cratesio readme, add many more examples (#5501) * update the dioxus cratesio readme * fix example * fix header * add a bunch more examples --- Cargo.toml | 119 +++++- README.md | 8 +- examples/02-building-ui/checkbox_radio.rs | 45 +++ examples/02-building-ui/children.rs | 52 +++ examples/02-building-ui/components.rs | 46 +++ .../02-building-ui/conditional_rendering.rs | 52 +++ examples/02-building-ui/counter.rs | 22 ++ examples/02-building-ui/dynamic_classes.rs | 54 +++ examples/02-building-ui/event_handler_prop.rs | 45 +++ examples/02-building-ui/forms.rs | 88 +++++ examples/02-building-ui/inputs.rs | 43 ++ examples/02-building-ui/lists.rs | 53 +++ examples/03-assets-styling/document_title.rs | 27 ++ examples/03-assets-styling/dynamic_styles.rs | 62 +++ examples/03-assets-styling/favicon.rs | 23 ++ examples/03-assets-styling/fonts.rs | 44 +++ examples/03-assets-styling/inline_styles.rs | 44 +++ examples/03-assets-styling/meta_elements.rs | 20 - examples/03-assets-styling/script.rs | 34 ++ examples/03-assets-styling/stylesheet.rs | 24 ++ examples/04-managing-state/custom_hook.rs | 59 +++ examples/04-managing-state/lifting_state.rs | 47 +++ examples/04-managing-state/read_signal.rs | 37 ++ examples/04-managing-state/struct_signal.rs | 61 +++ examples/04-managing-state/use_effect.rs | 40 ++ examples/04-managing-state/use_memo.rs | 39 ++ examples/04-managing-state/vec_signal.rs | 62 +++ examples/assets/Inter-Regular.woff2 | Bin 0 -> 111268 bytes examples/assets/stylesheet.css | 21 + packages/dioxus/README.md | 367 ++++++++---------- 30 files changed, 1403 insertions(+), 235 deletions(-) create mode 100644 examples/02-building-ui/checkbox_radio.rs create mode 100644 examples/02-building-ui/children.rs create mode 100644 examples/02-building-ui/components.rs create mode 100644 examples/02-building-ui/conditional_rendering.rs create mode 100644 examples/02-building-ui/counter.rs create mode 100644 examples/02-building-ui/dynamic_classes.rs create mode 100644 examples/02-building-ui/event_handler_prop.rs create mode 100644 examples/02-building-ui/forms.rs create mode 100644 examples/02-building-ui/inputs.rs create mode 100644 examples/02-building-ui/lists.rs create mode 100644 examples/03-assets-styling/document_title.rs create mode 100644 examples/03-assets-styling/dynamic_styles.rs create mode 100644 examples/03-assets-styling/favicon.rs create mode 100644 examples/03-assets-styling/fonts.rs create mode 100644 examples/03-assets-styling/inline_styles.rs delete mode 100644 examples/03-assets-styling/meta_elements.rs create mode 100644 examples/03-assets-styling/script.rs create mode 100644 examples/03-assets-styling/stylesheet.rs create mode 100644 examples/04-managing-state/custom_hook.rs create mode 100644 examples/04-managing-state/lifting_state.rs create mode 100644 examples/04-managing-state/read_signal.rs create mode 100644 examples/04-managing-state/struct_signal.rs create mode 100644 examples/04-managing-state/use_effect.rs create mode 100644 examples/04-managing-state/use_memo.rs create mode 100644 examples/04-managing-state/vec_signal.rs create mode 100644 examples/assets/Inter-Regular.woff2 create mode 100644 examples/assets/stylesheet.css diff --git a/Cargo.toml b/Cargo.toml index a71a77d39..b4a57d956 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -579,6 +579,56 @@ name = "svg" path = "examples/02-building-ui/svg.rs" doc-scrape-examples = true +[[example]] +name = "counter" +path = "examples/02-building-ui/counter.rs" +doc-scrape-examples = true + +[[example]] +name = "conditional_rendering" +path = "examples/02-building-ui/conditional_rendering.rs" +doc-scrape-examples = true + +[[example]] +name = "lists" +path = "examples/02-building-ui/lists.rs" +doc-scrape-examples = true + +[[example]] +name = "components" +path = "examples/02-building-ui/components.rs" +doc-scrape-examples = true + +[[example]] +name = "children" +path = "examples/02-building-ui/children.rs" +doc-scrape-examples = true + +[[example]] +name = "inputs" +path = "examples/02-building-ui/inputs.rs" +doc-scrape-examples = true + +[[example]] +name = "forms" +path = "examples/02-building-ui/forms.rs" +doc-scrape-examples = true + +[[example]] +name = "checkbox_radio" +path = "examples/02-building-ui/checkbox_radio.rs" +doc-scrape-examples = true + +[[example]] +name = "dynamic_classes" +path = "examples/02-building-ui/dynamic_classes.rs" +doc-scrape-examples = true + +[[example]] +name = "event_handler_prop" +path = "examples/02-building-ui/event_handler_prop.rs" +doc-scrape-examples = true + [[example]] name = "css_modules" path = "examples/03-assets-styling/css_modules.rs" @@ -600,8 +650,38 @@ path = "examples/03-assets-styling/meta.rs" doc-scrape-examples = true [[example]] -name = "meta_elements" -path = "examples/03-assets-styling/meta_elements.rs" +name = "stylesheet" +path = "examples/03-assets-styling/stylesheet.rs" +doc-scrape-examples = true + +[[example]] +name = "document_title" +path = "examples/03-assets-styling/document_title.rs" +doc-scrape-examples = true + +[[example]] +name = "favicon" +path = "examples/03-assets-styling/favicon.rs" +doc-scrape-examples = true + +[[example]] +name = "inline_styles" +path = "examples/03-assets-styling/inline_styles.rs" +doc-scrape-examples = true + +[[example]] +name = "dynamic_styles" +path = "examples/03-assets-styling/dynamic_styles.rs" +doc-scrape-examples = true + +[[example]] +name = "fonts" +path = "examples/03-assets-styling/fonts.rs" +doc-scrape-examples = true + +[[example]] +name = "script" +path = "examples/03-assets-styling/script.rs" doc-scrape-examples = true [[example]] @@ -634,6 +714,41 @@ name = "errors" path = "examples/04-managing-state/error_handling.rs" doc-scrape-examples = true +[[example]] +name = "use_effect" +path = "examples/04-managing-state/use_effect.rs" +doc-scrape-examples = true + +[[example]] +name = "use_memo" +path = "examples/04-managing-state/use_memo.rs" +doc-scrape-examples = true + +[[example]] +name = "struct_signal" +path = "examples/04-managing-state/struct_signal.rs" +doc-scrape-examples = true + +[[example]] +name = "vec_signal" +path = "examples/04-managing-state/vec_signal.rs" +doc-scrape-examples = true + +[[example]] +name = "read_signal" +path = "examples/04-managing-state/read_signal.rs" +doc-scrape-examples = true + +[[example]] +name = "lifting_state" +path = "examples/04-managing-state/lifting_state.rs" +doc-scrape-examples = true + +[[example]] +name = "custom_hook" +path = "examples/04-managing-state/custom_hook.rs" +doc-scrape-examples = true + [[example]] name = "backgrounded_futures" path = "examples/05-using-async/backgrounded_futures.rs" diff --git a/README.md b/README.md index 75aca3c64..3e94d859f 100644 --- a/README.md +++ b/README.md @@ -164,10 +164,6 @@ We've put a ton of effort into building clean, readable, and comprehensive docum -## Modular and Customizable - -Build your own renderer. Use our modular components like RSX, VirtualDom, Blitz, Taffy, and Subsecond. - ## Community Dioxus is a community-driven project, with a very active [Discord](https://discord.gg/XgGxMSkvUM) and [GitHub](https://github.com/DioxusLabs/dioxus/issues) community. We're always looking for help, and we're happy to answer questions and help you get started. [Our SDK](https://github.com/DioxusLabs/dioxus-std) is community-run and we even have a [GitHub organization](https://github.com/dioxus-community/) for the best Dioxus crates that receive free upgrades and support. @@ -252,10 +248,10 @@ cargo run --example However, we encourage you to download the dioxus-cli to test out features like hot-reloading. To install the most recent binary CLI, you can use cargo binstall. ```sh -cargo binstall dioxus-cli@0.7.0 --force +curl -fsSL https://dioxuslabs.com/install.sh | bash ``` -If this CLI is out-of-date, you can install it directly from git +If this CLI is out-of-date, you can install it directly from git or cargo-binstall ```sh cargo install --git https://github.com/DioxusLabs/dioxus dioxus-cli --locked diff --git a/examples/02-building-ui/checkbox_radio.rs b/examples/02-building-ui/checkbox_radio.rs new file mode 100644 index 000000000..083cb43a1 --- /dev/null +++ b/examples/02-building-ui/checkbox_radio.rs @@ -0,0 +1,45 @@ +//! Checkboxes and radio groups. +//! +//! Checkboxes expose their checked state through the FormEvent — read `evt.checked()`. +//! Radio groups share a `name` attribute so only one option can be selected at a time; +//! the selected value comes through `evt.value()`. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut subscribed = use_signal(|| false); + let mut color = use_signal(|| "red".to_string()); + + rsx! { + h2 { "Checkbox" } + label { + input { + r#type: "checkbox", + checked: subscribed(), + oninput: move |evt| subscribed.set(evt.checked()), + } + " Subscribe to updates" + } + p { "Subscribed: {subscribed}" } + + h2 { "Radio group" } + // Radio inputs sharing a `name` are mutually exclusive + for value in ["red", "green", "blue"] { + label { + input { + r#type: "radio", + name: "color", + value, + checked: color() == value, + oninput: move |evt| color.set(evt.value()), + } + " {value}" + } + } + p { color: "{color}", "Chosen color: {color}" } + } +} diff --git a/examples/02-building-ui/children.rs b/examples/02-building-ui/children.rs new file mode 100644 index 000000000..71c230153 --- /dev/null +++ b/examples/02-building-ui/children.rs @@ -0,0 +1,52 @@ +//! Accepting children on a component. +//! +//! Any component can take a `children: Element` prop. Anything nested inside the component +//! in `rsx!` is passed in as `children`. This is how you build reusable layout and container +//! components like cards, modals, or page shells. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + Card { + h2 { "A card" } + p { "Any rsx! can go inside — including other components." } + } + + Card { + p { "A second card with different children." } + button { "Click me" } + } + + Section { title: "Reusable layout", + p { "The section component takes both a title prop and children." } + } + } +} + +#[component] +fn Card(children: Element) -> Element { + rsx! { + div { + border: "1px solid #ccc", + border_radius: "8px", + padding: "12px", + margin: "8px 0", + {children} + } + } +} + +#[component] +fn Section(title: String, children: Element) -> Element { + rsx! { + section { + h3 { "{title}" } + {children} + } + } +} diff --git a/examples/02-building-ui/components.rs b/examples/02-building-ui/components.rs new file mode 100644 index 000000000..396c39b6e --- /dev/null +++ b/examples/02-building-ui/components.rs @@ -0,0 +1,46 @@ +//! Defining and using components. +//! +//! A component is just a function annotated with `#[component]` that returns an `Element`. +//! Its arguments are its props — Dioxus generates a builder so you can construct the +//! component inside `rsx!` with a struct-like syntax. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + h1 { "Greetings" } + Greeting { name: "Alice" } + Greeting { name: "Bob", excited: true } + Greeting { name: "Charlie", excited: false } + + h2 { "User cards" } + UserCard { name: "Ada Lovelace", role: "Mathematician" } + UserCard { name: "Grace Hopper", role: "Computer Scientist" } + } +} + +// Components must start with an uppercase letter. +// Props are taken as named arguments — `name` is required, and `excited` has a default. +#[component] +fn Greeting(name: String, #[props(default)] excited: bool) -> Element { + let punctuation = if excited { "!" } else { "." }; + rsx! { + p { "Hello, {name}{punctuation}" } + } +} + +// Components can take any Clone + PartialEq type as a prop. +#[component] +fn UserCard(name: String, role: String) -> Element { + rsx! { + div { border: "1px solid #ccc", padding: "8px", margin: "4px", + strong { "{name}" } + " — " + em { "{role}" } + } + } +} diff --git a/examples/02-building-ui/conditional_rendering.rs b/examples/02-building-ui/conditional_rendering.rs new file mode 100644 index 000000000..2eddc7273 --- /dev/null +++ b/examples/02-building-ui/conditional_rendering.rs @@ -0,0 +1,52 @@ +//! Conditional rendering. +//! +//! `if`, `else`, and `match` all work directly inside `rsx!`. You can also return different +//! `rsx!` blocks early from a component function. Elements outside of a conditional will +//! render normally — only the branched portion swaps as state changes. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +#[derive(PartialEq, Clone, Copy)] +enum Status { + Loading, + Ready, + Error, +} + +fn app() -> Element { + let mut logged_in = use_signal(|| false); + let mut status = use_signal(|| Status::Loading); + + rsx! { + h1 { "Conditional rendering" } + + // `if/else` chains render the matching branch + if logged_in() { + p { "Welcome back!" } + } else { + p { "Please log in." } + } + button { onclick: move |_| logged_in.toggle(), "Toggle login" } + + // `match` works too — each arm returns rsx! + div { + match status() { + Status::Loading => rsx! { p { "⏳ Loading..." } }, + Status::Ready => rsx! { p { "✅ Ready!" } }, + Status::Error => rsx! { p { "❌ Something went wrong." } }, + } + } + button { onclick: move |_| status.set(Status::Loading), "Loading" } + button { onclick: move |_| status.set(Status::Ready), "Ready" } + button { onclick: move |_| status.set(Status::Error), "Error" } + + // `if` without an `else` is also valid — nothing renders when false + if logged_in() && status() == Status::Ready { + p { "You are logged in and the app is ready." } + } + } +} diff --git a/examples/02-building-ui/counter.rs b/examples/02-building-ui/counter.rs new file mode 100644 index 000000000..c9a140f55 --- /dev/null +++ b/examples/02-building-ui/counter.rs @@ -0,0 +1,22 @@ +//! The classic counter — the "hello world" of reactive UI. +//! +//! `use_signal` creates a reactive value. Whenever the signal changes, any part of the UI +//! that reads it will re-render automatically. Signals are copy-cheap, so you can freely +//! move them into event handlers and closures. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut count = use_signal(|| 0); + + rsx! { + h1 { "Count: {count}" } + button { onclick: move |_| count += 1, "Increment" } + button { onclick: move |_| count -= 1, "Decrement" } + button { onclick: move |_| count.set(0), "Reset" } + } +} diff --git a/examples/02-building-ui/dynamic_classes.rs b/examples/02-building-ui/dynamic_classes.rs new file mode 100644 index 000000000..70bdb3fb8 --- /dev/null +++ b/examples/02-building-ui/dynamic_classes.rs @@ -0,0 +1,54 @@ +//! Applying classes and styles based on state. +//! +//! Any attribute can interpolate signals and expressions using `"{value}"` formatting. +//! For `class:`, you can also build the class string inline with if/else, and individual +//! CSS properties can be set as named attributes like `color:` or `background_color:`. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut is_active = use_signal(|| false); + let mut size = use_signal(|| 16); + + // Build a class string from state + let classes = if is_active() { "btn active" } else { "btn" }; + + rsx! { + // CSS properties are plain named attributes — snake_case in Rust, kebab-case in CSS + style { {STYLE} } + + button { + class: classes, + onclick: move |_| is_active.toggle(), + "Toggle active (currently {is_active})" + } + + // Or compute the class string ahead of time for anything more complex + div { + class: if is_active() { "box highlight" } else { "box" }, + "This box changes class with the button." + } + + hr {} + + // Style values can be driven directly by signals + p { + font_size: "{size}px", + color: if size() > 24 { "crimson" } else { "black" }, + "Font size: {size}px" + } + button { onclick: move |_| size += 2, "Bigger" } + button { onclick: move |_| size -= 2, "Smaller" } + } +} + +const STYLE: &str = r#" +.btn { padding: 6px 12px; border: 1px solid #888; border-radius: 4px; } +.btn.active { background: #4CAF50; color: white; border-color: #2E7D32; } +.box { padding: 12px; margin-top: 12px; border: 1px dashed #999; } +.box.highlight { background: #fff3cd; border-color: #d39e00; } +"#; diff --git a/examples/02-building-ui/event_handler_prop.rs b/examples/02-building-ui/event_handler_prop.rs new file mode 100644 index 000000000..1fd251ddd --- /dev/null +++ b/examples/02-building-ui/event_handler_prop.rs @@ -0,0 +1,45 @@ +//! Passing event handlers as props. +//! +//! Components can accept callbacks using `EventHandler`, which is Dioxus's equivalent +//! of React's `onClick` prop or a closure. Call the handler with `.call(value)` from the +//! child; the parent decides what happens when the event fires. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut log = use_signal(Vec::::new); + + rsx! { + h1 { "Custom event handlers" } + + // The parent owns the handler — the child just fires it + FancyButton { + label: "Say hi", + onpress: move |name: String| log.write().push(format!("Hi, {name}!")), + } + FancyButton { + label: "Say bye", + onpress: move |name: String| log.write().push(format!("Bye, {name}!")), + } + + ul { + for entry in log.iter() { + li { "{entry}" } + } + } + } +} + +#[component] +fn FancyButton(label: String, onpress: EventHandler) -> Element { + rsx! { + button { + onclick: move |_| onpress.call(label.clone()), + "{label}" + } + } +} diff --git a/examples/02-building-ui/forms.rs b/examples/02-building-ui/forms.rs new file mode 100644 index 000000000..6bda85147 --- /dev/null +++ b/examples/02-building-ui/forms.rs @@ -0,0 +1,88 @@ +//! Handling form submission and deserializing into a struct. +//! +//! `evt.parsed_values::()` takes the form's named inputs and deserializes them straight +//! into your own type via serde. This skips the chore of pulling each field out of the +//! values map by hand — just define a struct whose fields match the `name` attributes, +//! derive `Deserialize`, and you're done. + +use dioxus::prelude::*; +use serde::Deserialize; + +fn main() { + dioxus::launch(app); +} + +// Field names must match the `name` attribute on each input +#[derive(Deserialize, Debug, Clone)] +struct Signup { + username: String, + email: String, + role: String, + // Checkboxes are present in the form data only when checked, so model optional fields + // with Option. Use `#[serde(default)]` so the field doesn't fail to deserialize + // when the input is missing. + #[serde(default)] + newsletter: Option, +} + +fn app() -> Element { + let mut submitted = use_signal(|| None::); + + rsx! { + h1 { "Sign up" } + + form { + onsubmit: move |evt| { + // prevent_default stops the browser from navigating the page on submit + evt.prevent_default(); + + // Deserialize directly into our struct + match evt.parsed_values::() { + Ok(signup) => submitted.set(Some(signup)), + Err(err) => eprintln!("failed to parse form: {err}"), + } + }, + + div { + label { r#for: "username", "Username: " } + input { r#type: "text", id: "username", name: "username", required: true } + } + + div { + label { r#for: "email", "Email: " } + input { r#type: "email", id: "email", name: "email", required: true } + } + + div { + label { r#for: "role", "Role: " } + select { id: "role", name: "role", + option { value: "developer", "Developer" } + option { value: "designer", "Designer" } + option { value: "manager", "Manager" } + } + } + + div { + label { r#for: "newsletter", + input { r#type: "checkbox", id: "newsletter", name: "newsletter", value: "yes" } + " Subscribe to newsletter" + } + } + + button { r#type: "submit", "Submit" } + } + + if let Some(signup) = submitted() { + h2 { "Welcome, {signup.username}!" } + ul { + li { "Email: {signup.email}" } + li { "Role: {signup.role}" } + li { "Newsletter: {signup.newsletter.is_some()}" } + } + details { + summary { "Raw struct" } + pre { "{signup:#?}" } + } + } + } +} diff --git a/examples/02-building-ui/inputs.rs b/examples/02-building-ui/inputs.rs new file mode 100644 index 000000000..703470898 --- /dev/null +++ b/examples/02-building-ui/inputs.rs @@ -0,0 +1,43 @@ +//! Controlled text inputs. +//! +//! To read text from an input, attach an `oninput` handler and call `evt.value()` to get the +//! current value as a `String`. Binding the `value:` attribute to a signal makes the input +//! "controlled" — the signal is the single source of truth, so clearing it clears the input. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut name = use_signal(String::new); + let mut message = use_signal(|| "Type something below.".to_string()); + + rsx! { + h1 { "Hello, {name}!" } + + input { + r#type: "text", + placeholder: "Your name", + // Binding `value` to a signal makes this a controlled input + value: "{name}", + oninput: move |evt| name.set(evt.value()), + } + + button { + onclick: move |_| name.set(String::new()), + "Clear" + } + + hr {} + + p { "{message}" } + textarea { + rows: 3, + cols: 40, + value: "{message}", + oninput: move |evt| message.set(evt.value()), + } + } +} diff --git a/examples/02-building-ui/lists.rs b/examples/02-building-ui/lists.rs new file mode 100644 index 000000000..032c5371d --- /dev/null +++ b/examples/02-building-ui/lists.rs @@ -0,0 +1,53 @@ +//! Rendering lists. +//! +//! Use a `for` loop inside `rsx!` to render a list from an iterator. When list items can +//! be reordered, added, or removed, provide a stable `key` so Dioxus can efficiently +//! reuse existing elements rather than re-rendering them all. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut items = use_signal(|| { + vec![ + "apple".to_string(), + "banana".to_string(), + "cherry".to_string(), + ] + }); + let mut next_id = use_signal(|| 0); + + rsx! { + h1 { "Grocery list" } + + button { + onclick: move |_| { + let n = next_id(); + next_id += 1; + items.push(format!("item {n}")); + }, + "Add item" + } + button { + onclick: move |_| { items.pop(); }, + "Remove last" + } + + ul { + // The `key` is a stable identifier used to match up items across renders. + // Here we use the item's text, but in real apps prefer a database id. + for item in items.iter() { + li { key: "{item}", "{item}" } + } + } + + // You can also use iterator adapters with .map() for anything more complex than a for loop + p { "Uppercased:" } + ul { + {items.iter().map(|item| rsx! { li { "{item.to_uppercase()}" } })} + } + } +} diff --git a/examples/03-assets-styling/document_title.rs b/examples/03-assets-styling/document_title.rs new file mode 100644 index 000000000..f4962f6a2 --- /dev/null +++ b/examples/03-assets-styling/document_title.rs @@ -0,0 +1,27 @@ +//! Setting the page title. +//! +//! The `Title` component renders a `` tag into the document head. On the web it +//! sets the browser tab title; on desktop it becomes the window title. Because it's a +//! regular component, its contents can be driven by signals and update live. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut unread = use_signal(|| 0); + + rsx! { + // The title updates every time the signal changes + Title { + if unread() > 0 { "({unread}) Inbox" } else { "Inbox" } + } + + h1 { "Inbox" } + p { "Unread messages: {unread}" } + button { onclick: move |_| unread += 1, "New message" } + button { onclick: move |_| unread.set(0), "Mark all read" } + } +} diff --git a/examples/03-assets-styling/dynamic_styles.rs b/examples/03-assets-styling/dynamic_styles.rs new file mode 100644 index 000000000..34b28b834 --- /dev/null +++ b/examples/03-assets-styling/dynamic_styles.rs @@ -0,0 +1,62 @@ +//! Styling driven by state. +//! +//! Style attributes are interpolated the same way text is — read from signals inside `"{...}"` +//! or pass a conditional expression directly. The element re-renders only when the read +//! signals change, so you can freely animate colors, sizes, and transforms this way. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut hue = use_signal(|| 200.0_f32); + let mut size = use_signal(|| 100.0_f32); + let mut rotated = use_signal(|| false); + + rsx! { + h1 { "Dynamic styling" } + + div { + width: "{size}px", + height: "{size}px", + background_color: "hsl({hue}, 80%, 60%)", + transition: "transform 300ms ease", + transform: if rotated() { "rotate(45deg)" } else { "rotate(0deg)" }, + margin: "20px 0", + } + + div { + label { "Hue: {hue:.0}" } + input { + r#type: "range", + min: "0", + max: "360", + value: "{hue}", + oninput: move |evt| { + if let Ok(v) = evt.value().parse::<f32>() { + hue.set(v); + } + }, + } + } + + div { + label { "Size: {size:.0}px" } + input { + r#type: "range", + min: "40", + max: "300", + value: "{size}", + oninput: move |evt| { + if let Ok(v) = evt.value().parse::<f32>() { + size.set(v); + } + }, + } + } + + button { onclick: move |_| rotated.toggle(), "Toggle rotation" } + } +} diff --git a/examples/03-assets-styling/favicon.rs b/examples/03-assets-styling/favicon.rs new file mode 100644 index 000000000..848076c8d --- /dev/null +++ b/examples/03-assets-styling/favicon.rs @@ -0,0 +1,23 @@ +//! Setting a favicon. +//! +//! Use `document::Link` with `rel: "icon"` to point the browser at a favicon. Combined with +//! `asset!`, the favicon is bundled into the app and served with the same path-mangling +//! and cache-busting as any other asset. + +use dioxus::prelude::*; + +const FAVICON: Asset = asset!("/examples/assets/logo.png"); + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + // Link is a generic head element — for a favicon set rel="icon" + document::Link { rel: "icon", href: FAVICON } + + h1 { "Check the browser tab!" } + p { "The favicon is loaded from examples/assets/logo.png." } + } +} diff --git a/examples/03-assets-styling/fonts.rs b/examples/03-assets-styling/fonts.rs new file mode 100644 index 000000000..7a3aab08b --- /dev/null +++ b/examples/03-assets-styling/fonts.rs @@ -0,0 +1,44 @@ +//! Loading fonts — from a CDN and bundled with the app. +//! +//! Two common ways to get a custom typeface onto the page: +//! +//! 1. Point `Stylesheet` at a hosted CSS file like Google Fonts — the browser fetches the +//! font files on demand. +//! 2. Bundle a font file into the app with `asset!`, then declare an `@font-face` rule +//! that points at it. This avoids the network round-trip and makes the font available +//! offline. + +use dioxus::prelude::*; + +// A local font, bundled into the app. The asset macro fingerprints and copies the file +// into the final build; at runtime `INTER` formats to the public URL. +const INTER: Asset = asset!("/examples/assets/Inter-Regular.woff2"); + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + // Approach 1 — request a stylesheet from the Google Fonts CDN + Stylesheet { href: "https://fonts.googleapis.com/css2?family=Lobster&family=Roboto+Mono&display=swap" } + + // Approach 2 — register a bundled font with an inline @font-face rule. + // `{INTER}` interpolates to the asset's resolved URL at runtime. + style { "@font-face {{ font-family: 'Inter'; src: url('{INTER}') format('woff2'); font-display: swap; }}" } + + h1 { font_family: "'Lobster', cursive", font_size: "48px", + "From Google Fonts" + } + p { font_family: "'Roboto Mono', monospace", + "This paragraph also comes from the CDN." + } + + hr {} + + h2 { font_family: "'Inter', sans-serif", "Bundled Inter font" } + p { font_family: "'Inter', sans-serif", + "This paragraph uses Inter, shipped with the app — no network request needed." + } + } +} diff --git a/examples/03-assets-styling/inline_styles.rs b/examples/03-assets-styling/inline_styles.rs new file mode 100644 index 000000000..704800a63 --- /dev/null +++ b/examples/03-assets-styling/inline_styles.rs @@ -0,0 +1,44 @@ +//! Inline styles. +//! +//! For quick one-off styling, every CSS property is available as an attribute on HTML +//! elements — use snake_case in Rust (`background_color`) for the kebab-case CSS property +//! (`background-color`). You can also set the raw `style:` attribute with a full string. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + // Each CSS property is just a named attribute + div { + background_color: "#1e3a8a", + color: "white", + padding: "20px", + border_radius: "8px", + font_family: "system-ui, sans-serif", + + h1 { "Inline styling" } + p { "Property names are snake_case here, kebab-case in real CSS." } + } + + // The raw `style` attribute accepts any CSS string + div { + style: "margin-top: 12px; border: 2px dashed tomato; padding: 10px;", + "Use `style:` when you want a plain CSS string." + } + + // Interpolation works too — great for values driven by Rust expressions + for i in 1..=5 { + span { + display: "inline-block", + width: "32px", + height: "32px", + margin: "4px", + background_color: "hsl({i * 60}, 70%, 55%)", + } + } + } +} diff --git a/examples/03-assets-styling/meta_elements.rs b/examples/03-assets-styling/meta_elements.rs deleted file mode 100644 index 2d240a6af..000000000 --- a/examples/03-assets-styling/meta_elements.rs +++ /dev/null @@ -1,20 +0,0 @@ -//! This example shows how to add metadata to the page with the Meta component - -use dioxus::prelude::*; - -fn main() { - dioxus::launch(app); -} - -fn app() -> Element { - rsx! { - // You can use the Meta component to render a meta tag into the head of the page - // Meta tags are useful to provide information about the page to search engines and social media sites - // This example sets up meta tags for the open graph protocol for social media previews - Meta { property: "og:title", content: "My Site" } - Meta { property: "og:type", content: "website" } - Meta { property: "og:url", content: "https://www.example.com" } - Meta { property: "og:image", content: "https://example.com/image.jpg" } - Meta { name: "description", content: "My Site is a site" } - } -} diff --git a/examples/03-assets-styling/script.rs b/examples/03-assets-styling/script.rs new file mode 100644 index 000000000..1103d803a --- /dev/null +++ b/examples/03-assets-styling/script.rs @@ -0,0 +1,34 @@ +//! Adding a script to the document head. +//! +//! `document::Script` injects a `<script>` tag into the page. Use it to embed an inline +//! snippet via children, or load an external script by passing a `src`. Scripts are +//! deduplicated by their `src`, so mounting the same script from multiple components is safe. +//! +//! Prefer `Script` over `link {}` for better integration with SSR and pre-rendering. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + // Inline script — children must be a single text node + document::Script { "console.log('Hello from an inline script!');" } + + // External script, loaded with `defer` so it runs after parsing + document::Script { src: "https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.3/dist/confetti.browser.min.js", defer: true } + + h1 { "Script example" } + p { "Open your browser's console to see the inline script's output." } + + button { + onclick: move |_| { + // Call out to the confetti library loaded above + document::eval("confetti && confetti();"); + }, + "🎉 Confetti" + } + } +} diff --git a/examples/03-assets-styling/stylesheet.rs b/examples/03-assets-styling/stylesheet.rs new file mode 100644 index 000000000..f51e54905 --- /dev/null +++ b/examples/03-assets-styling/stylesheet.rs @@ -0,0 +1,24 @@ +//! Linking a CSS stylesheet. +//! +//! `Stylesheet` renders a `<link rel="stylesheet">` into the document head. Pairing it with +//! the `asset!` macro is the most common way to style a Dioxus app: the CSS file is bundled, +//! fingerprinted for cache-busting, and can be hot-reloaded during development. + +use dioxus::prelude::*; + +const STYLE: Asset = asset!("/examples/assets/stylesheet.css"); + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + rsx! { + // Placing the Stylesheet anywhere in the tree is fine — it's collected into <head> + Stylesheet { href: STYLE } + + h1 { "Styled with a CSS file" } + p { "All styling comes from stylesheet.css, loaded via the asset! macro." } + button { "A styled button" } + } +} diff --git a/examples/04-managing-state/custom_hook.rs b/examples/04-managing-state/custom_hook.rs new file mode 100644 index 000000000..7f139b62f --- /dev/null +++ b/examples/04-managing-state/custom_hook.rs @@ -0,0 +1,59 @@ +//! Writing your own hook. +//! +//! A hook is just a function that calls other hooks. By convention it starts with `use_` +//! and returns whatever state handle the caller needs. Extracting hooks is how you reuse +//! stateful logic across components — like a counter, a timer, or a data fetcher. +//! +//! Hooks rely on being called in the same order every render, so never call them inside +//! `if`, `match`, or loops. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + // Each call to our custom hook produces an independent counter + let mut counter_a = use_counter(0); + let mut counter_b = use_counter(100); + + // And a more complex hook that exposes multiple actions + let (name, set_name, reverse) = use_reversible_name("Ada"); + + rsx! { + h2 { "Two counters from one hook" } + p { "A: {counter_a}" } + button { onclick: move |_| counter_a += 1, "Increment A" } + + p { "B: {counter_b}" } + button { onclick: move |_| counter_b += 1, "Increment B" } + + h2 { "Reversible name" } + input { + value: "{name}", + oninput: move |evt| set_name.call(evt.value()), + } + button { onclick: move |_| reverse.call(()), "Reverse" } + p { "Name: {name}" } + } +} + +// A minimal hook — returns a signal initialized with a value +fn use_counter(initial: i32) -> Signal<i32> { + use_signal(|| initial) +} + +// Hooks can return any combination of signals and callbacks +fn use_reversible_name(initial: &'static str) -> (Signal<String>, Callback<String>, Callback<()>) { + let mut name = use_signal(|| initial.to_string()); + + // `use_callback` memoizes a closure so children don't think it changed every render + let set_name = use_callback(move |value: String| name.set(value)); + let reverse = use_callback(move |_| { + let reversed = name.read().chars().rev().collect::<String>(); + name.set(reversed); + }); + + (name, set_name, reverse) +} diff --git a/examples/04-managing-state/lifting_state.rs b/examples/04-managing-state/lifting_state.rs new file mode 100644 index 000000000..22c4bde32 --- /dev/null +++ b/examples/04-managing-state/lifting_state.rs @@ -0,0 +1,47 @@ +//! Sharing state between sibling components by lifting it up. +//! +//! When two components need to read or edit the same value, put the signal in their +//! common parent and pass it down as a prop. This keeps the data flow obvious: the parent +//! owns the state, the children receive a `Signal<T>` handle, and mutations show up +//! everywhere the signal is read. +//! +//! For state that needs to be shared across many layers, reach for `use_context_provider` +//! instead — see `context_api.rs`. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + // The parent owns the signal; both children share it + let counter = use_signal(|| 0); + + rsx! { + h1 { "Two views of the same counter" } + Controls { counter } + Display { counter } + } +} + +#[component] +fn Controls(mut counter: Signal<i32>) -> Element { + rsx! { + button { onclick: move |_| counter += 1, "Increment" } + button { onclick: move |_| counter -= 1, "Decrement" } + button { onclick: move |_| counter.set(0), "Reset" } + } +} + +#[component] +fn Display(counter: Signal<i32>) -> Element { + rsx! { + p { "Count is: {counter}" } + p { + if counter() > 0 { "Positive" } + else if counter() < 0 { "Negative" } + else { "Zero" } + } + } +} diff --git a/examples/04-managing-state/read_signal.rs b/examples/04-managing-state/read_signal.rs new file mode 100644 index 000000000..08229ad9a --- /dev/null +++ b/examples/04-managing-state/read_signal.rs @@ -0,0 +1,37 @@ +//! Passing a read-only signal to a child component. +//! +//! `ReadSignal<T>` is a signal that can only be read, not written. Taking it as a prop is +//! the idiomatic way to tell a child "you can subscribe to this value, but you can't change +//! it." Any `Signal<T>` or `Memo<T>` coerces into a `ReadSignal<T>` automatically, so the +//! parent passes them in unchanged. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut count = use_signal(|| 0); + let doubled = use_memo(move || count() * 2); + + rsx! { + h1 { "Parent" } + button { onclick: move |_| count += 1, "Increment" } + + // Both Signal and Memo implement Into<ReadSignal<T>> + Display { label: "Count", value: count } + Display { label: "Doubled", value: doubled } + + // You can also pass a plain value — it'll be wrapped automatically + Display { label: "Constant", value: 42 } + } +} + +// Taking `ReadSignal<i32>` means the child can subscribe but can't mutate the source +#[component] +fn Display(label: String, value: ReadSignal<i32>) -> Element { + rsx! { + p { "{label}: {value}" } + } +} diff --git a/examples/04-managing-state/struct_signal.rs b/examples/04-managing-state/struct_signal.rs new file mode 100644 index 000000000..968bf3012 --- /dev/null +++ b/examples/04-managing-state/struct_signal.rs @@ -0,0 +1,61 @@ +//! A signal that holds a struct. +//! +//! Signals don't care what they hold — you can put any `'static` type inside. To mutate +//! a field on a struct signal, call `.write()` and the guard derefs to the inner value. +//! Any read of the signal in the UI will re-render when you drop the write guard. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +#[derive(Clone)] +struct User { + name: String, + age: u32, + admin: bool, +} + +fn app() -> Element { + let mut user = use_signal(|| User { + name: "Ada".to_string(), + age: 36, + admin: false, + }); + + rsx! { + h1 { "User profile" } + p { "Name: {user.read().name}" } + p { "Age: {user.read().age}" } + p { "Admin: {user.read().admin}" } + + button { + // .write() gives a mutable guard — assign to a single field + onclick: move |_| user.write().age += 1, + "Happy birthday!" + } + button { + onclick: move |_| { + let mut guard = user.write(); + guard.admin = !guard.admin; + }, + "Toggle admin" + } + + input { + value: "{user.read().name}", + oninput: move |evt| user.write().name = evt.value(), + } + + // Replacing the whole value works too + button { + onclick: move |_| user.set(User { + name: "Grace".to_string(), + age: 85, + admin: true, + }), + "Reset to Grace" + } + } +} diff --git a/examples/04-managing-state/use_effect.rs b/examples/04-managing-state/use_effect.rs new file mode 100644 index 000000000..a88258820 --- /dev/null +++ b/examples/04-managing-state/use_effect.rs @@ -0,0 +1,40 @@ +//! Running side effects when state changes. +//! +//! `use_effect` runs a closure after every render where one of the signals it reads has +//! changed. It's the escape hatch for talking to code outside of Dioxus — logging, syncing +//! to `localStorage`, updating the `document.title`, tweaking imperative APIs, and so on. +//! +//! For pure derivations of other signals, reach for `use_memo` instead — effects are meant +//! for side effects, not for computing values used in the UI. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut count = use_signal(|| 0); + let mut name = use_signal(|| "world".to_string()); + + // Runs after every render where `count` changes — use this for side effects + use_effect(move || { + println!("count is now {count}"); + }); + + // An effect can read multiple signals. It re-runs whenever any of them change. + use_effect(move || { + println!("greeting changed: hello, {name} — count is {count}"); + }); + + rsx! { + h1 { "Hello, {name}! ({count})" } + + button { onclick: move |_| count += 1, "Increment count" } + input { + value: "{name}", + oninput: move |evt| name.set(evt.value()), + } + p { "Check your terminal — each change fires an effect." } + } +} diff --git a/examples/04-managing-state/use_memo.rs b/examples/04-managing-state/use_memo.rs new file mode 100644 index 000000000..fcf6e2d55 --- /dev/null +++ b/examples/04-managing-state/use_memo.rs @@ -0,0 +1,39 @@ +//! Deriving values with `use_memo`. +//! +//! `use_memo` caches the result of a closure and re-runs it only when one of the signals +//! it reads changes. It's how you compute values derived from state without doing the work +//! on every render, and without introducing another `use_signal` that you have to keep +//! in sync manually. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut first = use_signal(|| "Ada".to_string()); + let mut last = use_signal(|| "Lovelace".to_string()); + + // Recomputes only when `first` or `last` change + let full_name = use_memo(move || format!("{first} {last}")); + + // Memos compose — derive from other memos or signals + let initials = use_memo(move || { + let name = full_name(); + name.split_whitespace() + .filter_map(|w| w.chars().next()) + .collect::<String>() + }); + + rsx! { + h1 { "{full_name}" } + p { "Initials: {initials}" } + + label { "First: " } + input { value: "{first}", oninput: move |e| first.set(e.value()) } + + label { "Last: " } + input { value: "{last}", oninput: move |e| last.set(e.value()) } + } +} diff --git a/examples/04-managing-state/vec_signal.rs b/examples/04-managing-state/vec_signal.rs new file mode 100644 index 000000000..206884cca --- /dev/null +++ b/examples/04-managing-state/vec_signal.rs @@ -0,0 +1,62 @@ +//! Signals that hold a collection. +//! +//! `Signal<Vec<T>>` is the workhorse for dynamic lists. Dioxus exposes `push`, `pop`, +//! `remove`, `clear`, and `retain` directly on the signal so you don't have to call +//! `.write()` for the common cases. For anything else, `.write()` returns a guard that +//! derefs to the underlying `Vec`. + +use dioxus::prelude::*; + +fn main() { + dioxus::launch(app); +} + +fn app() -> Element { + let mut todos = use_signal(|| vec!["learn dioxus".to_string(), "build an app".to_string()]); + let mut draft = use_signal(String::new); + + rsx! { + h1 { "Todo list" } + + input { + placeholder: "New todo...", + value: "{draft}", + oninput: move |evt| draft.set(evt.value()), + } + button { + onclick: move |_| { + if !draft.read().is_empty() { + todos.push(draft()); + draft.set(String::new()); + } + }, + "Add" + } + + ul { + for (index, todo) in todos.read().iter().enumerate() { + li { key: "{index}", + "{todo} " + button { + onclick: move |_| { todos.remove(index); }, + "×" + } + } + } + } + + button { onclick: move |_| todos.clear(), "Clear all" } + button { + // `.retain` accepts a predicate — here we drop any todo containing "x" + onclick: move |_| todos.retain(|t| !t.contains('x')), + "Drop todos with 'x'" + } + button { + // For anything custom, `.write()` gives a mutable guard to the Vec + onclick: move |_| todos.write().sort(), + "Sort alphabetically" + } + + p { "{todos.len()} todo(s)" } + } +} diff --git a/examples/assets/Inter-Regular.woff2 b/examples/assets/Inter-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2bcd222ecfae996d035ff72bf70672305cc29261 GIT binary patch literal 111268 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 Hxtt0`Exu#nj7!Q*r)zd}&^680p8T2D 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 YlP_pm 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 C!H4<) literal 0 HcmV?d00001 diff --git a/examples/assets/stylesheet.css b/examples/assets/stylesheet.css new file mode 100644 index 000000000..32ed48b2b --- /dev/null +++ b/examples/assets/stylesheet.css @@ -0,0 +1,21 @@ +body { + font-family: system-ui, sans-serif; + background: #fafafa; + color: #222; + max-width: 640px; + margin: 40px auto; + padding: 0 16px; +} + +h1 { color: #1e3a8a; } + +button { + padding: 6px 14px; + border: 1px solid #1e3a8a; + border-radius: 4px; + background: white; + color: #1e3a8a; + cursor: pointer; +} + +button:hover { background: #1e3a8a; color: white; } diff --git a/packages/dioxus/README.md b/packages/dioxus/README.md index e66019c14..1a18eb6b4 100644 --- a/packages/dioxus/README.md +++ b/packages/dioxus/README.md @@ -1,229 +1,182 @@ <div align="center"> - <img - src="https://github.com/user-attachments/assets/6c7e227e-44ff-4e53-824a-67949051149c" - alt="Build web, desktop, and mobile apps with a single codebase." - width="100%" - class="darkmode-image" - > - <div> - <a href=https://dioxuslabs.com/learn/0.7/getting_started>Getting Started</a> | <a href="https://dioxuslabs.com/learn/0.7/">Book (0.7)</a> | <a href="https://github.com/DioxusLabs/dioxus/tree/main/examples">Examples</a> - </div> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/splash-header.svg" style="width: 80%; height: auto;"> +</div> + +<div align="center"> + <!-- Crates version --> + <a href="https://crates.io/crates/dioxus"> + <img src="https://img.shields.io/crates/v/dioxus.svg?style=flat-square" + alt="Crates.io version" /> + </a> + <!-- Downloads --> + <a href="https://crates.io/crates/dioxus"> + <img src="https://img.shields.io/crates/d/dioxus.svg?style=flat-square" + alt="Download" /> + </a> + <!-- docs --> + <a href="https://docs.rs/dioxus"> + <img src="https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square" + alt="docs.rs docs" /> + </a> + <!-- CI --> + <a href="https://github.com/dioxuslabs/dioxus/actions"> + <img src="https://github.com/dioxuslabs/dioxus/actions/workflows/main.yml/badge.svg" + alt="CI status" /> + </a> + <!-- Awesome --> + <a href="https://dioxuslabs.com/awesome"> + <img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome Page" /> + </a> + <!-- Discord --> + <a href="https://discord.gg/XgGxMSkvUM"> + <img src="https://img.shields.io/discord/899851952891002890.svg?logo=discord&style=flat-square" alt="Discord Link" /> + </a> +</div> + +<div align="center"> + <h3> + <a href="https://dioxuslabs.com"> Website </a> + <span> | </span> + <a href="https://dioxuslabs.com/learn/0.7/getting_started"> Getting Started </a> + <span> | </span> + <a href="https://dioxuslabs.com/learn/0.7/"> Book (0.7) </a> + <span> | </span> + <a href="https://github.com/DioxusLabs/dioxus/tree/main/examples"> Examples </a> + <span> | </span> + <a href="https://dioxuslabs.com/learn/0.7/tutorial"> Tutorial </a> + </h3> </div> --- -Dioxus is a framework for building cross-platform apps in Rust. With one codebase, you can build web, desktop, and mobile apps with fullstack server functions. Dioxus is designed to be easy to learn for developers familiar with web technologies like HTML, CSS, and JavaScript. +Build for web, desktop, and mobile, and more with a single codebase. Zero-config setup, integrated hot-reloading, and signals-based state management. Add backend functionality with Server Functions and bundle with our CLI. -<div align="center"> - <img src="https://github.com/user-attachments/assets/dddae6a9-c13b-4a88-84e8-dc98c1286d2a" alt="App with dioxus" height="600px"> -</div> - -## At a glance - -Dioxus is crossplatform app framework that empowers developer to build beautiful, fast, type-safe apps with Rust. By default, Dioxus apps are declared with HTML and CSS. Dioxus includes a number of useful features: - -- Hotreloading of RSX markup and assets -- Interactive CLI with logging, project templates, linting, and more -- Integrated bundler for deploying to the web, macOS, Linux, and Windows -- Support for modern web features like SSR, Hydration, and HTML streaming -- Direct access to system APIs through JNI (Android), CoreFoundation (Apple), and web-sys (web) -- Type-safe application routing and server functions - -## Quick start - -To get started with Dioxus, you'll want to grab the dioxus-cli tool: `dx`. We distribute `dx` with `cargo-binstall` - if you already have binstall skip this step. - -```shell -# skip if you already have cargo-binstall -cargo install cargo-binstall - -# install the precompiled `dx` tool -cargo binstall dioxus-cli - -# create a new app, following the template -dx new my-app && cd my-app - -# and then serve! -dx serve --desktop -``` - -## Your first app - -All Dioxus apps are built by composing functions return an `Element`. - -To launch an app, we use the `launch` method. In the launch function, we pass the app's root `Component`. - -```rust, no_run +```rust, ignore use dioxus::prelude::*; fn main() { - dioxus::launch(App); + dioxus::launch(app); } -// The #[component] attribute streamlines component creation. -// It's not required, but highly recommended. It will lint incorrect component definitions and help you create props structs. -#[component] -fn App() -> Element { - rsx! { "hello world!" } -} -``` - -## Elements & your first component - -You can use the `rsx!` macro to create elements with a jsx-like syntax. -Any element in `rsx!` can have attributes, listeners, and children. For -consistency, we force all attributes and listeners to be listed _before_ -children. - -```rust, no_run -# use dioxus::prelude::*; -let value = "123"; - -rsx! { - div { - class: "my-class {value}", // <--- attribute - onclick: move |_| println!("clicked!"), // <--- listener - h1 { "hello world" } // <--- child - } -}; -``` - -The `rsx!` macro accepts attributes in "struct form". Any rust expression contained within curly braces that implements [`IntoDynNode`](dioxus_core::IntoDynNode) will be parsed as a child. We make two exceptions: both `for` loops and `if` statements are parsed where their body is parsed as a rsx nodes. - -```rust, no_run -# use dioxus::prelude::*; -rsx! { - div { - for _ in 0..10 { - span { "hello world" } - } - } -}; -``` - -Putting everything together, we can write a simple component that renders a list of -elements: - -```rust, no_run -# use dioxus::prelude::*; -#[component] -fn App() -> Element { - let name = "dave"; - rsx! { - h1 { "Hello, {name}!" } - div { class: "my-class", id: "my-id", - for i in 0..5 { - div { "FizzBuzz: {i}" } - } - } - } -} -``` - -## Components - -We can compose these function components to build a complex app. Each new component takes some Properties. For components with no explicit properties, we can omit the type altogether. - -In Dioxus, all properties are memoized by default with `Clone` and `PartialEq`. For props you can't clone, simply wrap the fields in a [`ReadSignal`](dioxus_signals::ReadSignal) and Dioxus will handle converting types for you. - -```rust, no_run -# use dioxus::prelude::*; -# #[component] fn Header(title: String, color: String) -> Element { todo!() } -#[component] -fn App() -> Element { - rsx! { - Header { - title: "My App", - color: "red", - } - } -} -``` - -The `#[component]` macro will help us automatically create a props struct for our component: - -```rust, no_run -# use dioxus::prelude::*; -// The component macro turns the arguments for our function into named fields we can pass in to the component in rsx -#[component] -fn Header(title: String, color: String) -> Element { - rsx! { - div { - background_color: "{color}", - h1 { "{title}" } - } - } -} -``` - -> You can read more about props in the [reference](https://dioxuslabs.com/learn/0.7/essentials/ui/components). - -## Hooks - -While components are reusable forms of UI elements, hooks are reusable forms of logic. Hooks provide a way of retrieving state from Dioxus' internal `Scope` and using -it to render UI elements. - -By convention, all hooks are functions that should start with `use_`. We can use hooks to define the state and modify it from within listeners. - -```rust, no_run -# use dioxus::prelude::*; -#[component] -fn App() -> Element { - // The use signal hook runs once when the component is created and then returns the current value every run after the first - let name = use_signal(|| "world"); - - rsx! { "hello {name}!" } -} -``` - -Hooks are sensitive to how they are used. To use hooks, you must abide by the ["rules of hooks"](https://dioxuslabs.com/learn/0.7/essentials/basics/hooks#rules-of-hooks): - -- Hooks can only be called in the body of a component or another hook. Not inside of another expression like a loop, conditional or function call. -- Hooks should start with "use\_" - -Hooks let us add a field of state to our component without declaring an explicit state struct. However, this means we need to "load" the struct in the right order. If that order is wrong, then the hook will pick the wrong state and panic. - -Dioxus includes many built-in hooks that you can use in your components. If those hooks don't fit your use case, you can also extend Dioxus with custom hooks. - -## Putting it all together - -Using components, rsx, and hooks, we can build a simple app. - -```rust, no_run -use dioxus::prelude::*; - -fn main() { - dioxus::launch(App); -} - -#[component] -fn App() -> Element { +fn app() -> Element { let mut count = use_signal(|| 0); rsx! { - div { "Count: {count}" } - button { onclick: move |_| count += 1, "Increment" } - button { onclick: move |_| count -= 1, "Decrement" } + h1 { "High-Five counter: {count}" } + button { onclick: move |_| count += 1, "Up high!" } + button { onclick: move |_| count -= 1, "Down low!" } } } ``` -## Conclusion +## ⭐️ Unique features -This overview doesn't cover everything. Make sure to check out the [tutorial](https://dioxuslabs.com/learn/0.7/tutorial) and [guides](https://dioxuslabs.com/learn/0.7/tutorial) on the official -website for more details. +- Cross-platform apps in three lines of code (web, desktop, mobile, server, and more) +- [Ergonomic state management](https://dioxuslabs.com/blog/release-050) combines the best of React, Solid, and Svelte +- Built-in featureful, type-safe, fullstack web framework +- Integrated bundler for deploying to the web, macOS, Linux, and Windows +- Subsecond Rust hot-patching and asset hot-reloading +- And more! [Take a tour of Dioxus](https://dioxuslabs.com/learn/0.7/). -Beyond this overview, Dioxus supports: +## Quick start -- Server-side rendering -- Concurrent rendering (with async support) -- Web/Desktop/Mobile support -- Pre-rendering and hydration -- Fragments, and Suspense -- Inline-styles -- Custom event handlers -- Custom elements -- Basic fine-grained reactivity (IE SolidJS/Svelte) -- and more! +Grab the Dioxus CLI (`dx`) and spin up a new app in seconds: -Build cool things ✌️ +```shell +# install the dioxus-cli +curl -fsSL https://dioxuslabs.com/install.sh | bash + +# create a new app, following the template instructions +dx new my-app && cd my-app + +# and then serve on `--web, --desktop, --ios, or --android` +dx serve --desktop +``` + +## Guides + +This overview doesn't cover everything. Make sure to check out: + +- [Long-form tutorial](https://dioxuslabs.com/learn/0.7/tutorial) +- [Core concept guide](https://dioxuslabs.com/learn/0.7/essentials/) +- [Platform-specific guides](https://dioxuslabs.com/learn/0.7/guides/) +- [Code examples on GitHub](https://github.com/DioxusLabs/dioxus/tree/main/examples) + + +## Instant hot-reloading + +With one command, `dx serve` and your app is running. Edit your markup, styles, and see changes in milliseconds. Use our experimental `dx serve --hotpatch` to update Rust code in real time. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/screenshots/refs/heads/main/blitz/hotreload-video.webp"> +</div> + +## Build Beautiful Apps + +Dioxus apps are styled with HTML and CSS. Use the built-in TailwindCSS support or load your favorite CSS library. Easily call into native code (objective-c, JNI, Web-Sys) for a perfect native touch. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/ebou2.avif"> +</div> + +## Truly fullstack applications + +Dioxus deeply integrates with [axum](https://github.com/tokio-rs/axum) to provide powerful fullstack capabilities for both clients and servers. Pick from a wide array of built-in batteries like WebSockets, SSE, Streaming, File Upload/Download, Server-Side-Rendering, Forms, Middleware, and Hot-Reload, or go fully custom and integrate your existing axum backend. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/fullstack-websockets.avif" width="700"> +</div> + +## Experimental Native Renderer + +Render using web-sys, webview, server-side-rendering, liveview, or even with our experimental WGPU-based renderer. Embed Dioxus in Bevy, WGPU, or even run on embedded Linux! + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/screenshots/refs/heads/main/blitz/native-blitz-wgpu.webp"> +</div> + +## First-party primitive components + +Get started quickly with a complete set of primitives modeled after shadcn/ui and Radix-Primitives. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/primitive-components.avif" width="700"> +</div> + +## First-class Android and iOS support + +Dioxus is the fastest way to build native mobile apps with Rust. Simply run `dx serve --platform android` and your app is running in an emulator or on device in seconds. Call directly into JNI and Native APIs. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/android_and_ios2.avif" width="500"> +</div> + +## Bundle for web, desktop, and mobile + +Simply run `dx bundle` and your app will be built and bundled with maximization optimizations. On the web, take advantage of [`.avif` generation, `.wasm` compression, minification](https://dioxuslabs.com/learn/0.7/tutorial/assets), and more. Build WebApps weighing [less than 50kb](https://github.com/ealmloff/tiny-dioxus/) and desktop/mobile apps less than 5mb. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/bundle.gif"> +</div> + +## Fantastic documentation + +We've put a ton of effort into building clean, readable, and comprehensive documentation. All html elements and listeners are documented with MDN docs, and our Docs runs continuous integration with Dioxus itself to ensure that the docs are always up to date. Check out the [Dioxus website](https://dioxuslabs.com/learn/0.7/) for guides, references, recipes, and more. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/docs.avif"> +</div> + +## Community + +Dioxus is a community-driven project, with a very active [Discord](https://discord.gg/XgGxMSkvUM) and [GitHub](https://github.com/DioxusLabs/dioxus/issues) community. We're always looking for help, and we're happy to answer questions and help you get started. [Our SDK](https://github.com/DioxusLabs/dioxus-std) is community-run and we even have a [GitHub organization](https://github.com/dioxus-community/) for the best Dioxus crates that receive free upgrades and support. + +<div align="center"> + <img src="https://raw.githubusercontent.com/DioxusLabs/dioxus/main/notes/dioxus-community.avif"> +</div> + +## License + +This project is licensed under either the [MIT license](https://github.com/DioxusLabs/dioxus/blob/main/LICENSE-MIT) or the [Apache-2 License](https://github.com/DioxusLabs/dioxus/blob/main/LICENSE-APACHE). + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Dioxus by you, shall be licensed as MIT or Apache-2, without any additional terms or conditions.