diff --git a/examples/future.rs b/examples/future.rs index 130d526b2..76b6c8e7f 100644 --- a/examples/future.rs +++ b/examples/future.rs @@ -1,7 +1,7 @@ //! A simple example that shows how to use the use_future hook to run a background task. //! -//! use_future assumes your future will never complete - it won't return a value. -//! If you want to return a value, use use_resource instead. +//! use_future won't return a value, analagous to use_effect. +//! If you want to return a value from a future, use use_resource instead. use dioxus::prelude::*; use std::time::Duration; diff --git a/examples/seven_guis/cells.rs b/examples/seven_guis/cells.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/cells.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/examples/seven_guis/circle-drawer.rs b/examples/seven_guis/circle-drawer.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/circle-drawer.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/examples/seven_guis/counter.rs b/examples/seven_guis/counter.rs new file mode 100644 index 000000000..12fafb4f9 --- /dev/null +++ b/examples/seven_guis/counter.rs @@ -0,0 +1,25 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + let counter = use_signal(|| 0usize); + + rsx! { + button { onclick: move || counter += 1, "Increment Counter" } + p { "{counter}" } + } +} diff --git a/examples/seven_guis/crud.rs b/examples/seven_guis/crud.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/crud.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/examples/seven_guis/flight-booker.rs b/examples/seven_guis/flight-booker.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/flight-booker.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/examples/seven_guis/temperature-converter.rs b/examples/seven_guis/temperature-converter.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/temperature-converter.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/examples/seven_guis/timer.rs b/examples/seven_guis/timer.rs new file mode 100644 index 000000000..ee33c2230 --- /dev/null +++ b/examples/seven_guis/timer.rs @@ -0,0 +1,22 @@ +//! The simplest example of a Dioxus app. +//! +//! In this example we: +//! - import a number of important items from the prelude (launch, Element, rsx, div, etc.) +//! - define a main function that calls the launch function with our app function +//! - define an app function that returns a div element with the text "Hello, world!" +//! +//! The `launch` function is the entry point for all Dioxus apps. It takes a function that returns an Element. This function +//! calls "launch" on the currently-configured renderer you have. So if the `web` feature is enabled, it will launch a web +//! app, and if the `desktop` feature is enabled, it will launch a desktop app. + +use dioxus::prelude::*; + +fn main() { + launch(app); +} + +fn app() -> Element { + rsx! { + div { "Hello, world!" } + } +} diff --git a/packages/hooks/src/use_context.rs b/packages/hooks/src/use_context.rs index 27c586e4f..9194dbd2f 100644 --- a/packages/hooks/src/use_context.rs +++ b/packages/hooks/src/use_context.rs @@ -42,7 +42,7 @@ pub fn use_context() -> T { /// use_context_provider(|| Signal::new(0)); /// rsx! { Child {} } ///} -// This component does read from the signal, so when the signal changes it will rerun +/// // This component does read from the signal, so when the signal changes it will rerun ///#[component] ///fn Child() -> Element { /// let signal: Signal = use_context(); diff --git a/packages/hooks/src/use_future.rs b/packages/hooks/src/use_future.rs index a4f6ed214..b2276147b 100644 --- a/packages/hooks/src/use_future.rs +++ b/packages/hooks/src/use_future.rs @@ -12,7 +12,7 @@ use std::future::Future; /// This future will **not** run on the server /// The future is spawned on the next call to `flush_sync` which means that it will not run on the server. /// To run a future on the server, you should use `spawn` directly. -/// `use_future` assumes your future will never complete - **it won't return a value**. +/// `use_future` **won't return a value**. /// If you want to return a value, use `use_resource` instead. /// ```rust /// fn app() -> Element { diff --git a/packages/signals/src/read.rs b/packages/signals/src/read.rs index 63de45047..7effa39f7 100644 --- a/packages/signals/src/read.rs +++ b/packages/signals/src/read.rs @@ -39,7 +39,9 @@ pub trait Readable { MappedSignal::new(try_read, peek) } - /// Get the current value of the state. If this is a signal, this will subscribe the current scope to the signal. If the value has been dropped, this will panic. + /// Get the current value of the state. If this is a signal, this will subscribe the current scope to the signal. + /// If the value has been dropped, this will panic. Calling this on a Signal is the same as + /// using the signal() syntax to read and subscribe to its value #[track_caller] fn read(&self) -> ReadableRef { self.try_read().unwrap()