diff --git a/Cargo.toml b/Cargo.toml index b137e2a20..1d799b4af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -224,6 +224,7 @@ cargo-config2 = "0.1.26" criterion = { version = "0.5" } walrus = "0.23.2" cargo_metadata = "0.18.1" +parking_lot = "0.12.1" tracing-wasm = "0.2.1" console_error_panic_hook = "0.1.7" diff --git a/README.md b/README.md index dc834ce68..f233aef16 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@

- - - - - + + + + + +

@@ -45,7 +49,7 @@ | Examples | - Guide + Guide | 中文 | @@ -59,6 +63,9 @@

+

+ ✨ Dioxus 0.6 is released - check it out here! ✨ +


Build for web, desktop, and mobile, and more with a single codebase. Zero-config setup, integrated hotreloading, and signals-based state management. Add backend functionality with Server Functions and bundle with our CLI. @@ -79,42 +86,46 @@ fn app() -> Element { - 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 -- Extremely performant, powered by Rust's fastest wasm-framework [sledgehammer](https://dioxuslabs.com/blog/templates-diffing) +- Type-safe Routing and server functions to leverage Rust's powerful compile-time guarantees - Integrated bundler for deploying to the web, macOS, Linux, and Windows -- And more! Read the [take a tour of Dioxus](https://dioxuslabs.com/learn/0.5/). +- And more! [Take a tour of Dioxus](https://dioxuslabs.com/learn/0.6/). ## Instant hot-reloading -With one command, `dx serve` and your app is running. Edit your markup and styles and see the results in real time. Rust code hotreloading is not yet 1st class, but possible with [hot-lib-reloader](https://docs.rs/hot-lib-reloader/latest/hot_lib_reloader/). +With one command, `dx serve` and your app is running. Edit your markup and styles and see the results in real time.
- + + +
-## Bundler for deploying to the web and desktop -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.5/reference/assets), and more. Build webapps weighing [less than 50kb](https://github.com/ealmloff/tiny-dioxus/) and desktop/mobile apps less than 15mb. +## 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. + +
+ +
+ +## 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.6/guides/assets), and more. Build webapps weighing [less than 50kb](https://github.com/ealmloff/tiny-dioxus/) and desktop/mobile apps less than 15mb.
+ ## 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 docsite 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.5/) for guides, references, recipes, and more. Fun fact: we use the Dioxus website as a testbed for new diouxs features - [check it out!](https://github.com/dioxusLabs/docsite) +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 docsite 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.6/) for guides, references, recipes, and more. Fun fact: we use the Dioxus website as a testbed for new diouxs features - [check it out!](https://github.com/dioxusLabs/docsite)
-## Emphasis on developer experience - -Dioxus prioritizes developer experience, and we've put a ton of effort into end-to-end tooling. We've built a [VSCode extension](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus) that autoformats your RSX code, converts HTML to RSX, and more. We've also built a very powerful [CLI](https://dioxuslabs.com/learn/0.5/CLI) that supports creating new apps, serving them, and cross-platform bundling, with deployment on the roadmap. - -
- -
- ## 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. @@ -134,8 +145,6 @@ Dioxus has grown from a side project to a small team of fulltime engineers. Than Web -
- Tier 1 Support - - - Fullstack -
- Tier 1 Support - - - - - Desktop -
- Tier 1 Support - - - Liveview -
- Tier 1 Support - - - - - Mobile -
- Tier 2 Support - Terminal -
- Tier 2 Support + Server-side Rendering @@ -223,7 +199,7 @@ Dioxus has grown from a side project to a small team of fulltime engineers. Than ## Running the examples -> The examples in the main branch of this repository target the git version of dioxus and the CLI. If you are looking for examples that work with the latest stable release of dioxus, check out the [0.5 branch](https://github.com/DioxusLabs/dioxus/tree/v0.5/examples). +> The examples in the main branch of this repository target the git version of dioxus and the CLI. If you are looking for examples that work with the latest stable release of dioxus, check out the [0.6 branch](https://github.com/DioxusLabs/dioxus/tree/v0.6/examples). The examples in the top level of this repository can be run with: @@ -333,7 +309,7 @@ Dioxus and Electron are two entirely different projects with similar goals. Elec ## Contributing -- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.5/contributing). +- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.6/contributing). - Report issues on our [issue tracker](https://github.com/dioxuslabs/dioxus/issues). - [Join](https://discord.gg/XgGxMSkvUM) the discord and ask questions! diff --git a/examples/tailwind/README.md b/examples/tailwind/README.md index 6dca4b775..3ae18cac6 100644 --- a/examples/tailwind/README.md +++ b/examples/tailwind/README.md @@ -4,4 +4,4 @@ This example shows how an app might be styled with TailwindCSS. ## Running -Our [Tailwind](https://dioxuslabs.com/learn/0.5/cookbook/tailwind) guide explains how to setup and run Dioxus-Tailwind projects. \ No newline at end of file +Our [Tailwind](https://dioxuslabs.com/learn/0.6/cookbook/tailwind) guide explains how to setup and run Dioxus-Tailwind projects. diff --git a/notes/android_and_ios2.avif b/notes/android_and_ios2.avif new file mode 100644 index 000000000..6833d9a3f Binary files /dev/null and b/notes/android_and_ios2.avif differ diff --git a/notes/flat-splash.avif b/notes/flat-splash.avif new file mode 100644 index 000000000..25222cba1 Binary files /dev/null and b/notes/flat-splash.avif differ diff --git a/notes/header-dark-updated.svg b/notes/header-dark-updated.svg new file mode 100644 index 000000000..8e014d537 --- /dev/null +++ b/notes/header-dark-updated.svg @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/notes/header-light-updated.svg b/notes/header-light-updated.svg new file mode 100644 index 000000000..3ef3d28e4 --- /dev/null +++ b/notes/header-light-updated.svg @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/notes/image-splash.avif b/notes/image-splash.avif new file mode 100644 index 000000000..54e18720a Binary files /dev/null and b/notes/image-splash.avif differ diff --git a/notes/splash-header-darkmode.svg b/notes/splash-header-darkmode.svg new file mode 100644 index 000000000..bbc382dd3 --- /dev/null +++ b/notes/splash-header-darkmode.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/notes/splash-header.svg b/notes/splash-header.svg new file mode 100644 index 000000000..3ea9864d2 --- /dev/null +++ b/notes/splash-header.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/autofmt/Cargo.toml b/packages/autofmt/Cargo.toml index 1e6d6e6d3..29ae2d99c 100644 --- a/packages/autofmt/Cargo.toml +++ b/packages/autofmt/Cargo.toml @@ -7,8 +7,7 @@ description = "Autofomatter for Dioxus RSX" license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" -keywords = ["dom", "ui", "gui", "react"] -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +keywords = ["web", "desktop", "mobile", "gui", "wasm"] [dependencies] dioxus-rsx = { workspace = true } diff --git a/packages/autofmt/README.md b/packages/autofmt/README.md index 3892f33ac..4236eef15 100644 --- a/packages/autofmt/README.md +++ b/packages/autofmt/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5) | +[Guides](https://dioxuslabs.com/learn/0.6) | [API Docs](https://docs.rs/dioxus-autofmt/latest/dioxus_autofmt) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/check/Cargo.toml b/packages/check/Cargo.toml index 9877ed27c..a61b59948 100644 --- a/packages/check/Cargo.toml +++ b/packages/check/Cargo.toml @@ -7,8 +7,7 @@ description = "Checks Dioxus RSX files for issues" license = "MIT/Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" -keywords = ["dom", "ui", "gui", "react"] -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +keywords = ["web", "desktop", "mobile", "gui", "wasm"] [dependencies] proc-macro2 = { workspace = true, features = ["span-locations"] } diff --git a/packages/check/README.md b/packages/check/README.md index 88b9989ab..e735e7d5c 100644 --- a/packages/check/README.md +++ b/packages/check/README.md @@ -15,13 +15,13 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5) | +[Guides](https://dioxuslabs.com/learn/0.6) | [API Docs](https://docs.rs/dioxus-check) | [Chat](https://discord.gg/XgGxMSkvUM) ## Overview -`dioxus-check` analyzes Dioxus source code and reports errors and warnings. Primarily, it enforces the [Rules of Hooks](https://dioxuslabs.com/learn/0.5/reference/hooks#rules-of-hooks). +`dioxus-check` analyzes Dioxus source code and reports errors and warnings. Primarily, it enforces the [Rules of Hooks](https://dioxuslabs.com/learn/0.6/reference/hooks#rules-of-hooks). ## Contributing diff --git a/packages/check/src/issues.rs b/packages/check/src/issues.rs index 621fd4925..bc33a9275 100644 --- a/packages/check/src/issues.rs +++ b/packages/check/src/issues.rs @@ -162,11 +162,11 @@ impl Display for IssueReport { #[allow(clippy::enum_variant_names)] // we'll add non-hook ones in the future /// Issues that might be found via static analysis of a Dioxus file. pub enum Issue { - /// + /// HookInsideConditional(HookInfo, ConditionalInfo), - /// + /// HookInsideLoop(HookInfo, AnyLoopInfo), - /// + /// HookInsideClosure(HookInfo, ClosureInfo), HookInsideAsync(HookInfo, AsyncInfo), HookOutsideComponent(HookInfo), diff --git a/packages/cli-config/Cargo.toml b/packages/cli-config/Cargo.toml index 81db49c6e..5e2ea8de0 100644 --- a/packages/cli-config/Cargo.toml +++ b/packages/cli-config/Cargo.toml @@ -7,7 +7,7 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" description = "CLI Configuration for dioxus-cli" -keywords = ["dom", "ui", "gui", "react", ] +keywords = ["web", "desktop", "mobile", "gui", "wasm"] [dependencies] wasm-bindgen = { workspace = true, optional = true } diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml index d8ad421ed..b289d70d4 100644 --- a/packages/cli/Cargo.toml +++ b/packages/cli/Cargo.toml @@ -3,10 +3,10 @@ name = "dioxus-cli" version = { workspace = true } authors = ["Jonathan Kelley"] edition = "2021" -description = "CLI tool for developing, testing, and publishing Dioxus apps" +description = "CLI for building fullstack web, desktop, and mobile apps with a single codebase." repository = "https://github.com/DioxusLabs/dioxus/" license = "MIT OR Apache-2.0" -keywords = ["react", "gui", "cli", "dioxus", "wasm"] +keywords = ["mobile", "gui", "cli", "dioxus", "wasm"] rust-version = "1.79.0" [dependencies] diff --git a/packages/cli/README.md b/packages/cli/README.md index 9627a1e35..5913d9f2c 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -63,9 +63,6 @@ default_platform = "web" [web.app] title = "Hello" -[web.watcher] - [web.resource.dev] ``` -The full anatomy of `Dioxus.toml` is shown on the [Dioxus website](https://dioxuslabs.com/learn/0.5/CLI/configure). diff --git a/packages/config-macro/Cargo.toml b/packages/config-macro/Cargo.toml index b75558880..d233fd90e 100644 --- a/packages/config-macro/Cargo.toml +++ b/packages/config-macro/Cargo.toml @@ -7,7 +7,7 @@ description = "Configuration macros for Dioxus" license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" -keywords = ["dom", "ui", "gui", "react"] +keywords = ["web", "desktop", "mobile", "gui", "wasm"] [lib] proc-macro = true diff --git a/packages/config-macro/README.md b/packages/config-macro/README.md index 06dbaaea2..39ca7e98d 100644 --- a/packages/config-macro/README.md +++ b/packages/config-macro/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5) | +[Guide](https://dioxuslabs.com/learn/0.6) | [API Docs](https://docs.rs/dioxus-config-macro/latest/dioxus_config_macro/) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/core-macro/README.md b/packages/core-macro/README.md index f3ba80107..7a7d1639a 100644 --- a/packages/core-macro/README.md +++ b/packages/core-macro/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5) | +[Guides](https://dioxuslabs.com/learn/0.6) | [API Docs](https://docs.rs/dioxus-core-macro/latest/dioxus_core_macro) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/core-macro/src/props/mod.rs b/packages/core-macro/src/props/mod.rs index 3befb2fe5..2a52d1c5c 100644 --- a/packages/core-macro/src/props/mod.rs +++ b/packages/core-macro/src/props/mod.rs @@ -1055,7 +1055,7 @@ Finally, call `.build()` to create the instance of `{name}`. name: field_name, .. } = field; if *field_name == "key" { - return Err(Error::new_spanned(field_name, "Naming a prop `key` is not allowed because the name can conflict with the built in key attribute. See https://dioxuslabs.com/learn/0.5/reference/dynamic_rendering#rendering-lists for more information about keys")); + return Err(Error::new_spanned(field_name, "Naming a prop `key` is not allowed because the name can conflict with the built in key attribute. See https://dioxuslabs.com/learn/0.6/reference/dynamic_rendering#rendering-lists for more information about keys")); } let StructInfo { ref builder_name, .. diff --git a/packages/core/Cargo.toml b/packages/core/Cargo.toml index 9f282af5d..0271e61f7 100644 --- a/packages/core/Cargo.toml +++ b/packages/core/Cargo.toml @@ -3,11 +3,11 @@ name = "dioxus-core" version = { workspace = true } authors = ["Jonathan Kelley"] edition = "2021" -description = "Core functionality for Dioxus - a concurrent renderer-agnostic Virtual DOM for interactive user experiences" +description = "Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" -keywords = ["dom", "ui", "gui", "react"] +keywords = ["web", "desktop", "mobile", "gui", "wasm"] [dependencies] dioxus-core-types = { workspace = true } diff --git a/packages/core/README.md b/packages/core/README.md index 267a0be3e..a4b80f500 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -81,7 +81,7 @@ fn main() { ## Contributing -- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.5/contributing). +- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.6/contributing). - Report issues on our [issue tracker](https://github.com/dioxuslabs/dioxus/issues). - [Join](https://discord.gg/XgGxMSkvUM) the discord and ask questions! diff --git a/packages/desktop/Cargo.toml b/packages/desktop/Cargo.toml index 73eee62e3..366c8d12d 100644 --- a/packages/desktop/Cargo.toml +++ b/packages/desktop/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" description = "WebView renderer for Dioxus" license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/getting_started" +homepage = "https://dioxuslabs.com/learn/0.6/getting_started" keywords = ["dom", "ui", "gui", "react"] [dependencies] diff --git a/packages/desktop/README.md b/packages/desktop/README.md index ca07c3628..cebf39cbc 100644 --- a/packages/desktop/README.md +++ b/packages/desktop/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5) | +[Guides](https://dioxuslabs.com/learn/0.6) | [API Docs](https://docs.rs/dioxus-desktop/latest/dioxus_desktop) | [Chat](https://discord.gg/XgGxMSkvUM) @@ -25,7 +25,7 @@ This requires that webview is installed on the target system. WebView is installed by default on macOS and iOS devices, but might not come preinstalled on Windows or Linux devices. To fix these issues, follow the [instructions in the guide](guide-url). -[guide-url]: https://dioxuslabs.com/learn/0.5/getting_started +[guide-url]: https://dioxuslabs.com/learn/0.6/getting_started ## Features diff --git a/packages/desktop/src/readme.md b/packages/desktop/src/readme.md index 2242ef1de..2cd1809dd 100644 --- a/packages/desktop/src/readme.md +++ b/packages/desktop/src/readme.md @@ -47,4 +47,4 @@ To configure the webview, menubar, and other important desktop-specific features ## Future Steps -Make sure to read the [Dioxus Guide](https://dioxuslabs.com/learn/0.5/) if you already haven't! +Make sure to read the [Dioxus Guide](https://dioxuslabs.com/learn/0.6/) if you already haven't! diff --git a/packages/dioxus-lib/Cargo.toml b/packages/dioxus-lib/Cargo.toml index 50d0a6fa2..7f80a27f5 100644 --- a/packages/dioxus-lib/Cargo.toml +++ b/packages/dioxus-lib/Cargo.toml @@ -3,10 +3,10 @@ name = "dioxus-lib" version = { workspace = true } authors = ["Jonathan Kelley", "Dioxus Labs", "ealmloff"] edition = "2021" -description = "Portable, performant, and ergonomic framework for building cross-platform user interfaces in Rust" +description = "Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/" +homepage = "https://dioxuslabs.com/learn/0.6/" keywords = ["dom", "ui", "gui", "react", "wasm"] rust-version = "1.79.0" diff --git a/packages/dioxus-lib/README.md b/packages/dioxus-lib/README.md index 80d6a1bce..e7e74ff8d 100644 --- a/packages/dioxus-lib/README.md +++ b/packages/dioxus-lib/README.md @@ -1,20 +1,29 @@ -
-

🌗🚀 Dioxus (lib)

-

- A concurrent, functional, virtual DOM for Rust -

+
+ + Build web, desktop, and mobile apps with a single codebase. + Build web, desktop, and mobile apps with a single codebase. +
+--- + > This crate implements dioxus-lib which is a renderer-free version of Dioxus. This crate is intended to be used by library authors who need a stable core version of dioxus withuot pulling in renderer-related dependencies on accident. -# Resources - -This overview provides a brief introduction to Dioxus. For a more in-depth guide, make sure to check out: - -- [Getting Started](https://dioxuslabs.com/learn/0.5/getting_started) -- [Book (0.5)](https://dioxuslabs.com/learn/0.5) -- [Examples](https://github.com/DioxusLabs/dioxus/tree/main/examples) - # Overview and Goals Dioxus makes it easy to quickly build complex user interfaces with Rust. Any Dioxus app can run in the web browser, @@ -202,7 +211,7 @@ fn App() -> Element { ``` Hooks are sensitive to how they are used. To use hooks, you must abide by the -["rules of hooks"](https://dioxuslabs.com/learn/0.5/reference/hooks#rules-of-hooks): +["rules of hooks"](https://dioxuslabs.com/learn/0.6/reference/hooks#rules-of-hooks): - Functions with "use\_" should not be called in callbacks - Functions with "use\_" should not be called out of order diff --git a/packages/dioxus/Cargo.toml b/packages/dioxus/Cargo.toml index 6ae139e08..fb4497d04 100644 --- a/packages/dioxus/Cargo.toml +++ b/packages/dioxus/Cargo.toml @@ -3,11 +3,11 @@ name = "dioxus" version = { workspace = true } authors = ["Jonathan Kelley", "Dioxus Labs", "ealmloff"] edition = "2021" -description = "Portable, performant, and ergonomic framework for building cross-platform user interfaces in Rust" +description = "Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/" -keywords = ["dom", "ui", "gui", "react", "wasm"] +homepage = "https://dioxuslabs.com" +keywords = ["web", "desktop", "mobile", "gui", "wasm"] rust-version = "1.79.0" [dependencies] @@ -29,7 +29,7 @@ dioxus-ssr = { workspace = true, optional = true } manganis = { workspace = true, features = ["dioxus"], optional = true } dioxus-logger = { workspace = true, optional = true } -serde = { version = "1.0.136", optional = true } +serde = { workspace = true, optional = true } dioxus-cli-config = { workspace = true, optional = true } [target.'cfg(not(any(target_arch = "wasm32", target_os = "ios", target_os = "android")))'.dependencies] @@ -91,3 +91,10 @@ features = [ "liveview", "server" ] +targets = [ + "wasm32-unknown-unknown", + "aarch64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-pc-windows-msvc", + "aarch64-linux-android", +] diff --git a/packages/dioxus/README.md b/packages/dioxus/README.md index a5acff195..be12921ba 100644 --- a/packages/dioxus/README.md +++ b/packages/dioxus/README.md @@ -1,42 +1,65 @@ -
-

🌗🚀 Dioxus

-

- A concurrent, functional, virtual DOM for Rust -

+
+ + Build web, desktop, and mobile apps with a single codebase. + Build web, desktop, and mobile apps with a single codebase. +
-# Resources +--- +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. -This overview provides a brief introduction to Dioxus. For a more in-depth guide, make sure to check out: +
+ App with dioxus +
-- [Getting Started](https://dioxuslabs.com/learn/0.5/getting_started) -- [Book (0.5)](https://dioxuslabs.com/learn/0.5) -- [Examples](https://github.com/DioxusLabs/dioxus/tree/main/examples) +## At a glance -# Overview and Goals +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: -Dioxus makes it easy to quickly build complex user interfaces with Rust. Any Dioxus app can run in the web browser, -as a desktop app, as a mobile app, or anywhere else provided you build the right renderer. +- 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 -Dioxus is heavily inspired by React, supporting many of the same concepts: +## Quick start -- Hooks for state -- VirtualDom & diffing -- Concurrency, fibers, and asynchronous rendering -- JSX-like templating syntax +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 -If you know React, then you know Dioxus. +# install the precompiled `dx` tool +cargo binstall dioxus-cli -Dioxus is _substantially_ more performant than many of the other Rust UI libraries (Yew/Percy) and is _significantly_ more performant -than React—roughly competitive with InfernoJS. +# create a new app, following the template +dx new my-app && cd my-app -Remember: Dioxus is a library for declaring interactive user interfaces—it is not a dedicated renderer. Most 1st party renderers for Dioxus currently only support web technologies. +# and then serve! +dx serve --platform desktop +``` -## Brief Overview +## Your first app -All Dioxus apps are built by composing functions that start with a capital letter and return an `Element`. +All Dioxus apps are built by composing functions return an `Element`. -To launch an app, we use the `launch` method and use features in `Cargo.toml` to specify which renderer we want to use. In the launch function, we pass the app's root `Component`. +To launch an app, we use the `launch` method. In the launch function, we pass the app's root `Component`. ```rust, no_run use dioxus::prelude::*; @@ -107,10 +130,9 @@ fn App() -> Element { ## Components -We can compose these function components to build a complex app. Each new -component we design must take some Properties. For components with no explicit properties, we can omit the type altogether. +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 memorized by default with Clone and PartialEq. For props you can't clone, simply wrap the fields in a [`ReadOnlySignal`](dioxus_signals::ReadOnlySignal) and Dioxus will handle converting types for you. +In Dioxus, all properties are memoized by default with `Clone` and `PartialEq`. For props you can't clone, simply wrap the fields in a [`ReadOnlySignal`](dioxus_signals::ReadOnlySignal) and Dioxus will handle converting types for you. ```rust, no_run # use dioxus::prelude::*; @@ -142,16 +164,14 @@ fn Header(title: String, color: String) -> Element { } ``` -> You can read more about props in the [reference](https://dioxuslabs.com/learn/0.5/reference/component_props). +> You can read more about props in the [reference](https://dioxuslabs.com/learn/0.6/reference/component_props). ## 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 +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. +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::*; @@ -164,17 +184,14 @@ fn App() -> Element { } ``` -Hooks are sensitive to how they are used. To use hooks, you must abide by the -["rules of hooks"](https://dioxuslabs.com/learn/0.5/reference/hooks#rules-of-hooks): +Hooks are sensitive to how they are used. To use hooks, you must abide by the ["rules of hooks"](https://dioxuslabs.com/learn/0.6/reference/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\_" -In a sense, 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. +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](https://dioxuslabs.com/learn/0.5/cookbook/state/custom_hooks). +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 @@ -201,18 +218,18 @@ fn App() -> Element { ## Conclusion -This overview doesn't cover everything. Make sure to check out the [tutorial](https://dioxuslabs.com/learn/0.5/guide) and [reference](https://dioxuslabs.com/learn/0.5/reference) on the official +This overview doesn't cover everything. Make sure to check out the [tutorial](https://dioxuslabs.com/learn/0.6/guide) and [guides](https://dioxuslabs.com/learn/0.6/guides) on the official website for more details. Beyond this overview, Dioxus supports: -- [Server-side rendering](https://dioxuslabs.com/learn/0.5/reference/fullstack) +- Server-side rendering - Concurrent rendering (with async support) - Web/Desktop/Mobile support - Pre-rendering and hydration - Fragments, and Suspense - Inline-styles -- [Custom event handlers](https://dioxuslabs.com/learn/0.5/reference/event_handlers#handler-props) +- Custom event handlers - Custom elements - Basic fine-grained reactivity (IE SolidJS/Svelte) - and more! diff --git a/packages/dioxus/src/lib.rs b/packages/dioxus/src/lib.rs index 7481e7d30..3e4063ae0 100644 --- a/packages/dioxus/src/lib.rs +++ b/packages/dioxus/src/lib.rs @@ -9,12 +9,13 @@ //! - `html`: (default) exports `dioxus-html` as the default elements to use in rsx //! - `hooks`: (default) re-exports `dioxus-hooks` //! - `hot-reload`: (default) enables hot rsx reloading in all renderers that support it -//! - `router`: exports the [router](https://dioxuslabs.com/learn/0.5/router) and enables any router features for the current platform +//! - `router`: exports the [router](https://dioxuslabs.com/learn/0.6/router) and enables any router features for the current platform //! - `third-party-renderer`: Just disables warnings about no active platform when no renderers are enabled +//! - `logger`: Enable the default tracing subscriber for Dioxus apps //! //! Platform features (the current platform determines what platform the [`launch()`] function runs): //! -//! - `fullstack`: enables the fullstack platform. This must be used in combination with the `web` feature for wasm builds and `axum` feature for server builds +//! - `fullstack`: enables the fullstack platform. This must be used in combination with the `web` feature for wasm builds and `server` feature for server builds //! - `desktop`: enables the desktop platform //! - `mobile`: enables the mobile platform //! - `web`: enables the web platform. If the fullstack platform is enabled, this will set the fullstack platform to client mode diff --git a/packages/dx-wire-format/Cargo.toml b/packages/dx-wire-format/Cargo.toml index a04cfb068..6292bac7c 100644 --- a/packages/dx-wire-format/Cargo.toml +++ b/packages/dx-wire-format/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Jonathan Kelley"] description = "Wire format for the Dioxus CLI" license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/" +homepage = "https://dioxuslabs.com/learn/0.6/" keywords = ["dom", "ui", "gui", "react", "wasm"] rust-version = "1.79.0" diff --git a/packages/extension/README.md b/packages/extension/README.md index c53fd88b1..145a65d8c 100644 --- a/packages/extension/README.md +++ b/packages/extension/README.md @@ -28,11 +28,11 @@ Formats the current file as RSX. This overview provides a brief introduction to Dioxus. For a more in-depth guide, make sure to check out: -- [Getting Started](https://dioxuslabs.com/learn/0.5/getting_started) -- [Book (0.5)](https://dioxuslabs.com/learn/0.5) +- [Getting Started](https://dioxuslabs.com/learn/0.6/getting_started) +- [Book (0.6)](https://dioxuslabs.com/learn/0.6) ## Contributing -- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.5/contributing). +- Check out the website [section on contributing](https://dioxuslabs.com/learn/0.6/contributing). - Report issues on our [issue tracker](https://github.com/dioxuslabs/dioxus/issues). - [Join](https://discord.gg/XgGxMSkvUM) the discord and ask questions! diff --git a/packages/fullstack/Cargo.toml b/packages/fullstack/Cargo.toml index df3e4e2a3..2e0b0b0e0 100644 --- a/packages/fullstack/Cargo.toml +++ b/packages/fullstack/Cargo.toml @@ -3,11 +3,11 @@ name = "dioxus-fullstack" authors = ["Jonathan Kelley", "Evan Almloff"] version = { workspace = true } edition = "2021" -description = "Fullstack Dioxus Utilities" +description = "Fullstack utilities for Dioxus: Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" -keywords = ["ui", "gui", "react", "server", "fullstack"] +keywords = ["web", "desktop", "mobile", "gui", "server"] resolver = "2" [dependencies] @@ -58,7 +58,7 @@ thiserror = { workspace = true, optional = true } bytes = "1.4.0" tower = { workspace = true, features = ["util"], optional = true } tower-layer = { version = "0.3.2", optional = true } -parking_lot = { version = "0.12.1", features = ["send_guard"], optional = true } +parking_lot = { workspace = true, features = ["send_guard"], optional = true } web-sys = { version = "0.3.61", optional = true, features = ["Window", "Document", "Element", "HtmlDocument", "Storage", "console"] } dioxus-cli-config = { workspace = true, optional = true } diff --git a/packages/fullstack/README.md b/packages/fullstack/README.md index 0d5d10a2b..86a36ba8d 100644 --- a/packages/fullstack/README.md +++ b/packages/fullstack/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-fullstack/latest/dioxus_fullstack/) | [Chat](https://discord.gg/XgGxMSkvUM) @@ -138,7 +138,7 @@ async fn get_meaning(of: String) -> Result, ServerFnError> { ## Getting Started -To get started with full stack Dioxus, check out our [getting started guide](https://dioxuslabs.com/learn/0.5/getting_started), or the [full stack examples](https://github.com/DioxusLabs/dioxus/tree/master/examples). +To get started with full stack Dioxus, check out our [getting started guide](https://dioxuslabs.com/learn/0.6/getting_started), or the [full stack examples](https://github.com/DioxusLabs/dioxus/tree/master/examples). ## Contributing diff --git a/packages/generational-box/Cargo.toml b/packages/generational-box/Cargo.toml index 68d607aee..f8e8f767b 100644 --- a/packages/generational-box/Cargo.toml +++ b/packages/generational-box/Cargo.toml @@ -10,8 +10,8 @@ keywords = ["generational", "box", "memory", "allocator"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -parking_lot = "0.12.1" -tracing.workspace = true +parking_lot = { workspace = true } +tracing = { workspace = true } [dev-dependencies] rand = { workspace = true } diff --git a/packages/hooks/README.md b/packages/hooks/README.md index e81963254..2e944d095 100644 --- a/packages/hooks/README.md +++ b/packages/hooks/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-hooks/latest/dioxus_hooks) | [Chat](https://discord.gg/XgGxMSkvUM) @@ -29,7 +29,7 @@ - use_memo - use_coroutine -Unlike React, none of these hooks are foundational since they all build off the primitive `use_hook`. You can extend these hooks with [custom hooks](https://dioxuslabs.com/learn/0.5/cookbook/state/custom_hooks) in your own code. If you think they would be useful for the broader community, you can open a PR to add your hook to the [Dioxus Awesome](https://github.com/DioxusLabs/awesome-dioxus) list. +Unlike React, none of these hooks are foundational since they all build off the primitive `use_hook`. You can extend these hooks with [custom hooks](https://dioxuslabs.com/learn/0.6/cookbook/state/custom_hooks) in your own code. If you think they would be useful for the broader community, you can open a PR to add your hook to the [Dioxus Awesome](https://github.com/DioxusLabs/awesome-dioxus) list. ## State Cheat Sheet @@ -41,9 +41,9 @@ Depending on where you need to access the state, you can put your state in one o | Location | Where can you access the state? | Recommended for Libraries? | Examples | | ---------------------------------------------------------------------------------------- | ------------------------------- | -------------------------- | --------------------------------------------------------------------------- | -| [Hooks](https://docs.rs/dioxus-hooks/latest/dioxus_hooks/fn.use_signal.html) | Any components you pass it to | ✅ | `use_signal(\|\| 0)`, `use_memo(\|\| state() * 2)` | -| [Context](https://docs.rs/dioxus-hooks/latest/dioxus_hooks/fn.use_context_provider.html) | Any child components | ✅ | `use_context_provider(\|\| Signal::new(0))`, `use_context::>()` | -| [Global](https://docs.rs/dioxus/latest/dioxus/prelude/struct.Signal.html#method.global) | Anything in your app | ❌ | `Signal::global(\|\| 0)` | +| [Hooks](https://docs.rs/dioxus-hooks/latest/dioxus_hooks/fn.use_signal.html) | Any components you pass it to | ✅ | `use_signal(\|\| 0)`, `use_memo(\|\| state() * 2)` | +| [Context](https://docs.rs/dioxus-hooks/latest/dioxus_hooks/fn.use_context_provider.html) | Any child components | ✅ | `use_context_provider(\|\| Signal::new(0))`, `use_context::>()` | +| [Global](https://docs.rs/dioxus/latest/dioxus/prelude/struct.Signal.html#method.global) | Anything in your app | ❌ | `Signal::global(\|\| 0)` | ### Derived State @@ -51,9 +51,9 @@ If you don't have an initial value for your state, you can derive your state fro | Hook | Reactive (reruns when dependencies change) | Async | Memorizes Output | Example | | ----------------------------------------------------------------------------------- | ------------------------------------------ | ----- | ---------------- | ----------------------------------------------------------------------------------- | -| [`use_memo`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_memo.html) | ✅ | ❌ | ✅ | `use_memo(move \|\| count() * 2)` | -| [`use_resource`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_resource.html) | ✅ | ✅ | ❌ | `use_resource(move \|\| reqwest::get(format!("/users/{user_id}")))` | -| [`use_future`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_future.html) | ❌ | ✅ | ❌ | `use_future(move \|\| println!("{:?}", reqwest::get(format!("/users/{user_id}"))))` | +| [`use_memo`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_memo.html) | ✅ | ❌ | ✅ | `use_memo(move \|\| count() * 2)` | +| [`use_resource`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_resource.html) | ✅ | ✅ | ❌ | `use_resource(move \|\| reqwest::get(format!("/users/{user_id}")))` | +| [`use_future`](https://docs.rs/dioxus/latest/dioxus/prelude/fn.use_future.html) | ❌ | ✅ | ❌ | `use_future(move \|\| println!("{:?}", reqwest::get(format!("/users/{user_id}"))))` | ### Persistent State @@ -61,8 +61,8 @@ The core hooks library doesn't provide hooks for persistent state, but you can e | State | Sharable | Example | | ---------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------- | -| [`use_persistent`](https://github.com/DioxusLabs/sdk/tree/master/examples/storage) | ❌ | `use_persistent("unique_key", move \|\| initial_state)` | -| [`Router {}`](https://dioxuslabs.com/learn/0.5/router) | ✅ | `#[derive(Routable, Clone, PartialEq)] enum Route { #[route("/user/:id")] Homepage { id: u32 } }` | +| [`use_persistent`](https://github.com/DioxusLabs/sdk/tree/master/examples/storage) | ❌ | `use_persistent("unique_key", move \|\| initial_state)` | +| [`Router {}`](https://dioxuslabs.com/learn/0.6/router) | ✅ | `#[derive(Routable, Clone, PartialEq)] enum Route { #[route("/user/:id")] Homepage { id: u32 } }` | ## Contributing diff --git a/packages/hooks/docs/moving_state_around.md b/packages/hooks/docs/moving_state_around.md index cdf9088ec..b2b47afcc 100644 --- a/packages/hooks/docs/moving_state_around.md +++ b/packages/hooks/docs/moving_state_around.md @@ -3,7 +3,7 @@ You will often need to move state around between your components. Dioxus provides three different ways to pass around state: -1. Just pass your values as [props](https://dioxuslabs.com/learn/0.5/reference/component_props): +1. Just pass your values as [props](https://dioxuslabs.com/learn/0.6/reference/component_props): ```rust # use dioxus::prelude::*; @@ -30,7 +30,7 @@ fn IncrementButton(mut count: Signal) -> Element { This is the most common way to pass state around. It is the most explicit and local to your component. Use this when it isn't overly annoying to pass around a value. -2. Use [use_context](https://dioxuslabs.com/learn/0.5/reference/context) to pass state from a parent component to all children: +2. Use [use_context](https://dioxuslabs.com/learn/0.6/reference/context) to pass state from a parent component to all children: ```rust # use dioxus::prelude::*; diff --git a/packages/html/README.md b/packages/html/README.md index 6dbd1457d..7424b02ba 100644 --- a/packages/html/README.md +++ b/packages/html/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-html/latest/dioxus_html) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/interpreter/README.md b/packages/interpreter/README.md index 7f9e05177..2a499f507 100644 --- a/packages/interpreter/README.md +++ b/packages/interpreter/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-interpreter-js/latest/dioxus_interpreter_js) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/liveview/Cargo.toml b/packages/liveview/Cargo.toml index 1cc226587..8b1d8d432 100644 --- a/packages/liveview/Cargo.toml +++ b/packages/liveview/Cargo.toml @@ -3,7 +3,7 @@ name = "dioxus-liveview" version = { workspace = true } edition = "2021" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/getting_started" +homepage = "https://dioxuslabs.com/learn/0.6/getting_started" keywords = ["dom", "ui", "gui", "react", "liveview"] description = "Build server-side apps with Dioxus" authors = ["Jonathan Kelley", "Evan Almloff"] diff --git a/packages/liveview/README.md b/packages/liveview/README.md index 9880d6809..9bc987a37 100644 --- a/packages/liveview/README.md +++ b/packages/liveview/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-liveview/latest/dioxus_liveview) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/mobile/Cargo.toml b/packages/mobile/Cargo.toml index e23565c68..41e1317b0 100644 --- a/packages/mobile/Cargo.toml +++ b/packages/mobile/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Jonathan Kelley"] edition = "2021" description = "Mobile-compatible renderer for Dioxus" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/getting_started" +homepage = "https://dioxuslabs.com/learn/0.6/getting_started" keywords = ["dom", "ui", "gui", "react"] license = "MIT OR Apache-2.0" diff --git a/packages/mobile/README.md b/packages/mobile/README.md index dbd0a18e3..ba7fdeb57 100644 --- a/packages/mobile/README.md +++ b/packages/mobile/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-mobile/latest/dioxus_mobile) | [Chat](https://discord.gg/XgGxMSkvUM) @@ -29,7 +29,7 @@ Dioxus Mobile supports both iOS and Android. However, Android support is still q Getting set up with mobile can but quite challenging. The tooling here isn't great (yet) and might take some hacking around to get things working. macOS M1 is broadly unexplored and might not work for you. -You can read [our guide](https://dioxuslabs.com/learn/0.5/getting_started) on mobile development with Dioxus to get started. +You can read [our guide](https://dioxuslabs.com/learn/0.6/getting_started) on mobile development with Dioxus to get started. ## Contributing diff --git a/packages/router/README.md b/packages/router/README.md index ea74c0bed..be0a71bfe 100644 --- a/packages/router/README.md +++ b/packages/router/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/router/) | +[Guides](https://dioxuslabs.com/learn/0.6/router/) | [API Docs](https://docs.rs/dioxus-router/latest/dioxus_router) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/rsx-rosetta/README.md b/packages/rsx-rosetta/README.md index 11594e7c0..67aabbe75 100644 --- a/packages/rsx-rosetta/README.md +++ b/packages/rsx-rosetta/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/rsx-rosetta/latest/rsx-rosetta) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/rsx/README.md b/packages/rsx/README.md index 338f91f25..e50613754 100644 --- a/packages/rsx/README.md +++ b/packages/rsx/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-rsx/latest/dioxus_rsx) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/packages/signals/Cargo.toml b/packages/signals/Cargo.toml index b214e69e3..bee9f97e1 100644 --- a/packages/signals/Cargo.toml +++ b/packages/signals/Cargo.toml @@ -3,7 +3,7 @@ name = "dioxus-signals" authors = ["Jonathan Kelley", "Evan Almloff"] version = { workspace = true } edition = "2021" -description = "Signals for Dioxus" +description = "Reactivie signals for Dioxus: Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" homepage = "https://dioxuslabs.com" @@ -17,8 +17,8 @@ dioxus-core = { workspace = true } generational-box = { workspace = true } tracing = { workspace = true } serde = { workspace = true, features = ["derive"], optional = true } -parking_lot = "0.12.1" -once_cell = { workspace = true } +parking_lot = { workspace = true} +once_cell = { workspace = true} rustc-hash = { workspace = true } futures-channel = { workspace = true } futures-util = { workspace = true } diff --git a/packages/signals/src/read_only_signal.rs b/packages/signals/src/read_only_signal.rs index d5d95348b..f75412a09 100644 --- a/packages/signals/src/read_only_signal.rs +++ b/packages/signals/src/read_only_signal.rs @@ -11,6 +11,9 @@ pub struct ReadOnlySignal> = UnsyncStorage> inner: Signal, } +/// A signal that can only be read from. +pub type ReadSignal = ReadOnlySignal; + impl>> From> for ReadOnlySignal { fn from(inner: Signal) -> Self { Self { inner } diff --git a/packages/ssr/README.md b/packages/ssr/README.md index 0452f0407..a7d1a76c6 100644 --- a/packages/ssr/README.md +++ b/packages/ssr/README.md @@ -9,8 +9,8 @@ This crate is a part of the broader Dioxus ecosystem. For more resources about Dioxus, check out: -- [Getting Started](https://dioxuslabs.com/learn/0.5/getting_started) -- [Book](https://dioxuslabs.com/learn/0.5/) +- [Getting Started](https://dioxuslabs.com/learn/0.6/getting_started) +- [Book](https://dioxuslabs.com/learn/0.6/) - [Examples](https://github.com/DioxusLabs/dioxus/tree/main/examples) ## Overview diff --git a/packages/web/Cargo.toml b/packages/web/Cargo.toml index c481b20e6..c7dc81f04 100644 --- a/packages/web/Cargo.toml +++ b/packages/web/Cargo.toml @@ -3,11 +3,11 @@ name = "dioxus-web" version = { workspace = true } authors = ["Jonathan Kelley"] edition = "2021" -description = "Web renderer for Dioxus using websys" +description = "Web-sys renderer for Dioxus: Build fullstack web, desktop, and mobile apps with a single codebase." license = "MIT OR Apache-2.0" repository = "https://github.com/DioxusLabs/dioxus/" -homepage = "https://dioxuslabs.com/learn/0.5/getting_started" -keywords = ["dom", "ui", "gui", "react", "wasm"] +homepage = "https://dioxuslabs.com/learn/0.6/getting_started" +keywords = ["dom", "ui", "gui", "web", "wasm"] [dependencies] dioxus-core = { workspace = true } diff --git a/packages/web/README.md b/packages/web/README.md index 630a56411..29f32b334 100644 --- a/packages/web/README.md +++ b/packages/web/README.md @@ -15,7 +15,7 @@ [discord-url]: https://discord.gg/XgGxMSkvUM [Website](https://dioxuslabs.com) | -[Guides](https://dioxuslabs.com/learn/0.5/) | +[Guides](https://dioxuslabs.com/learn/0.6/) | [API Docs](https://docs.rs/dioxus-web/latest/dioxus_web) | [Chat](https://discord.gg/XgGxMSkvUM) diff --git a/translations/ja-jp/README.md b/translations/ja-jp/README.md index 9cecc5eb0..13d41d796 100644 --- a/translations/ja-jp/README.md +++ b/translations/ja-jp/README.md @@ -40,7 +40,7 @@ | 例 | - ガイド + ガイド | 中文 | diff --git a/translations/ko-kr/README.md b/translations/ko-kr/README.md index 3273e0afe..c8c2ede7c 100644 --- a/translations/ko-kr/README.md +++ b/translations/ko-kr/README.md @@ -45,7 +45,7 @@ | Examples | - Guide + Guide | 中文 | @@ -81,7 +81,7 @@ fn app() -> Element { - [인체공학적 상태 관리](https://dioxuslabs.com/blog/release-050)은 React, Solid, Svelte의 장점을 결합했습니다 - 극도로 높은 성능을 자랑하며 Rust의 가장 빠른 wasm 프레임워크 [sledgehammer](https://dioxuslabs.com/blog/templates-diffing)에 의해 구동됩니다 - 웹, macOS, Linux, Windows에 배포할 수 있는 통합 번들러 -- 그 외에도 많은 기능! [Dioxus 투어를 살펴보세요](https://dioxuslabs.com/learn/0.5/). +- 그 외에도 많은 기능! [Dioxus 투어를 살펴보세요](https://dioxuslabs.com/learn/0.6/). ## 핫 리로딩 @@ -93,7 +93,7 @@ fn app() -> Element { ## 웹 및 데스크톱 배포를 위한 번들러 -단순히 `dx bundle`을 실행하면 앱이 빌드되고 최적화된 번들로 패키징됩니다. 웹에서는 [`.avif` 생성, `.wasm` 압축, 최소화](https://dioxuslabs.com/learn/0.5/reference/assets) 등을 활용할 수 있습니다. [50kb 미만](https://github.com/ealmloff/tiny-dioxus/)의 웹앱과 15mb 미만의 데스크톱/모바일 앱을 빌드하세요. +단순히 `dx bundle`을 실행하면 앱이 빌드되고 최적화된 번들로 패키징됩니다. 웹에서는 [`.avif` 생성, `.wasm` 압축, 최소화](https://dioxuslabs.com/learn/0.6/guides/assets) 등을 활용할 수 있습니다. [50kb 미만](https://github.com/ealmloff/tiny-dioxus/)의 웹앱과 15mb 미만의 데스크톱/모바일 앱을 빌드하세요.
@@ -101,7 +101,7 @@ fn app() -> Element { ## 환상적인 문서 -깨끗하고 읽기 쉽고 포괄적인 문서를 구축하는 데 많은 노력을 기울였습니다. 모든 HTML 요소와 리스너는 MDN 문서로 문서화되었으며, 저희 문서 사이트는 Dioxus 자체와 지속적인 통합을 실행하여 문서가 항상 최신 상태로 유지되도록 합니다. 가이드, 참조, 레시피 등을 보려면 [Dioxus 웹사이트](https://dioxuslabs.com/learn/0.5/)를 확인하세요. 재미있는 사실: 저희는 Dioxus 웹사이트를 새로운 Dioxus 기능의 테스트베드로 사용합니다 - [확인해보세요!](https://github.com/dioxusLabs/docsite) +깨끗하고 읽기 쉽고 포괄적인 문서를 구축하는 데 많은 노력을 기울였습니다. 모든 HTML 요소와 리스너는 MDN 문서로 문서화되었으며, 저희 문서 사이트는 Dioxus 자체와 지속적인 통합을 실행하여 문서가 항상 최신 상태로 유지되도록 합니다. 가이드, 참조, 레시피 등을 보려면 [Dioxus 웹사이트](https://dioxuslabs.com/learn/0.6/)를 확인하세요. 재미있는 사실: 저희는 Dioxus 웹사이트를 새로운 Dioxus 기능의 테스트베드로 사용합니다 - [확인해보세요!](https://github.com/dioxusLabs/docsite)
@@ -109,7 +109,7 @@ fn app() -> Element { ## 개발자 경험에 중점 -Dioxus는 개발자 경험을 우선시하며, end-to-end 도구 개발에 많은 노력을 기울였습니다. RSX 코드를 자동으로 포맷하고 HTML을 RSX로 변환하는 등 다양한 기능을 제공하는 [VSCode 확장 프로그램](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus)을 제작했습니다. 또한 새로운 앱 생성, 서비스 실행, 크로스 플랫폼 번들링을 지원하는 매우 강력한 [CLI](https://dioxuslabs.com/learn/0.5/CLI)를 개발했으며, 배포는 향후 로드맵에 포함되어 있습니다. +Dioxus는 개발자 경험을 우선시하며, end-to-end 도구 개발에 많은 노력을 기울였습니다. RSX 코드를 자동으로 포맷하고 HTML을 RSX로 변환하는 등 다양한 기능을 제공하는 [VSCode 확장 프로그램](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus)을 제작했습니다. 또한 새로운 앱 생성, 서비스 실행, 크로스 플랫폼 번들링을 지원하는 매우 강력한 [CLI](https://dioxuslabs.com/learn/0.6/CLI)를 개발했으며, 배포는 향후 로드맵에 포함되어 있습니다.
@@ -223,7 +223,7 @@ Dioxus는 사이드 프로젝트에서 소수의 전임 엔지니어 팀으로 ## 예제 실행하기 -> 이 저장소의 메인 브랜치에 있는 예제들은 dioxus의 git 버전과 CLI를 대상으로 합니다. 최신 안정 버전의 dioxus와 호환되는 예제를 찾고 있다면 [0.5 브랜치](https://github.com/DioxusLabs/dioxus/tree/v0.5/examples)를 확인하세요. +> 이 저장소의 메인 브랜치에 있는 예제들은 dioxus의 git 버전과 CLI를 대상으로 합니다. 최신 안정 버전의 dioxus와 호환되는 예제를 찾고 있다면 [0.5 브랜치](https://github.com/DioxusLabs/dioxus/tree/v0.6/examples)를 확인하세요. 이 저장소 최상위에 있는 예제들은 다음과 같이 실행할 수 있습니다: @@ -375,7 +375,7 @@ Dioxus와 Electron은 유사한 목표를 가진 완전히 다른 두 프로젝 ## 기여하기 -- 웹사이트의 [기여 섹션](https://dioxuslabs.com/learn/0.5/contributing)을 확인하세요. +- 웹사이트의 [기여 섹션](https://dioxuslabs.com/learn/0.6/contributing)을 확인하세요. - [이슈 트래커](https://github.com/dioxuslabs/dioxus/issues)에 이슈를 보고하세요. - [Discord](https://discord.gg/XgGxMSkvUM)에 참여하여 질문하세요! diff --git a/translations/pt-br/README.md b/translations/pt-br/README.md index c5f64b3c1..41d60e4fa 100644 --- a/translations/pt-br/README.md +++ b/translations/pt-br/README.md @@ -40,7 +40,7 @@ | Exemplos | - Guia + Guia | 中文 | @@ -85,18 +85,18 @@ Se você conhece React, então você já conhece o Dioxus. - - - - - + + + + +
TutorialWebDesktopSSRMóvelTutorialWebDesktopSSRMóvel
## Projetos de Exemplo: -| Navegador de Arquivos (Desktop) | WiFi Scanner (Desktop) | TodoMVC (Todas as Plataformas) | E-commerce com Tailwind (SSR/LiveView) | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Navegador de Arquivos (Desktop) | WiFi Scanner (Desktop) | TodoMVC (Todas as Plataformas) | E-commerce com Tailwind (SSR/LiveView) | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [![Explorador de Arquivos](https://github.com/DioxusLabs/example-projects/blob/master/file-explorer/assets/image.png)](https://github.com/DioxusLabs/example-projects/blob/master/file-explorer) | [![Wifi Scanner Demo](https://github.com/DioxusLabs/example-projects/raw/master/wifi-scanner/demo_small.png)](https://github.com/DioxusLabs/example-projects/blob/master/wifi-scanner) | [![TodoMVC example](https://github.com/DioxusLabs/example-projects/raw/master/todomvc/example.png)](https://github.com/DioxusLabs/example-projects/blob/master/todomvc) | [![Exemplo de E-commerce](https://github.com/DioxusLabs/example-projects/raw/master/ecommerce-site/demo.png)](https://github.com/DioxusLabs/example-projects/blob/master/ecommerce-site) | Veja a página [awesome-dioxus](https://github.com/DioxusLabs/awesome-dioxus) para uma lista curada do conteúdo dentro do ecossistema do Dioxus. @@ -161,7 +161,7 @@ Dioxus é único no ecossistema do Rust por suportar: - SSR com `hydration` feito pelo Cliente - Suporte à aplicação Desktop -Para mais informações sobre quais funções estão atualmente disponíveis e para o progresso futuro, veja [O Guia](https://dioxuslabs.com/learn/0.5). +Para mais informações sobre quais funções estão atualmente disponíveis e para o progresso futuro, veja [O Guia](https://dioxuslabs.com/learn/0.6). ## Projeto dentro do ecossistema Dioxus diff --git a/translations/tr-tr/README.md b/translations/tr-tr/README.md index 8c8576eca..c2fb710b3 100644 --- a/translations/tr-tr/README.md +++ b/translations/tr-tr/README.md @@ -45,7 +45,7 @@ | Examples | - Guide + Guide | 中文 | @@ -81,7 +81,7 @@ fn app() -> Element { - [Ergonomik durum yönetimi](https://dioxuslabs.com/blog/release-050) React, Solid ve Svelte'nin en iyi özelliklerini birleştirdik. - Rust'ın en en hızlı wasm(WebAssembly)-framework'ü (yazılım geliştirmek için kullanılan kütüphanelerin bir araya gelmesi ile oluşan yapılar) ile yüksek performans [sledgehammer](https://dioxuslabs.com/blog/templates-diffing). - Web, macOS, Linux ve Windows üzerinde deploy (yayınlamak) için entegre paketleyici (burada belirtilen `dx bundle` bizim için işleri hallediyor). -- Ve daha fazlası! Gözat -> [Dioxus turu](https://dioxuslabs.com/learn/0.5/). +- Ve daha fazlası! Gözat -> [Dioxus turu](https://dioxuslabs.com/learn/0.6/). ## Anında hot-reloading @@ -93,7 +93,7 @@ Tek bir `dx serve` komutu ile uygulamanı çalıştır. Markup ve styles(html ve ## Web ve Masaüstü için Paketleyici -Basitçe `dx bundle` komutunu çalıştır ve uygulaman maksimum optimizasyon ile derlenip paketlensin. Web üzerindeki [`.avif` oluşturma, `.wasm` sıkıştırma, küçültme](https://dioxuslabs.com/learn/0.5/reference/assets) ve daha fazlası ile avantajı yakala. [50kb'dan daha küçük](https://github.com/ealmloff/tiny-dioxus/) hafif web uygulamaları ve 15mb'dan daha az boyutlarda masaüstü/mobil uygulamalar üret. +Basitçe `dx bundle` komutunu çalıştır ve uygulaman maksimum optimizasyon ile derlenip paketlensin. Web üzerindeki [`.avif` oluşturma, `.wasm` sıkıştırma, küçültme](https://dioxuslabs.com/learn/0.6/guides/assets) ve daha fazlası ile avantajı yakala. [50kb'dan daha küçük](https://github.com/ealmloff/tiny-dioxus/) hafif web uygulamaları ve 15mb'dan daha az boyutlarda masaüstü/mobil uygulamalar üret.
@@ -101,7 +101,7 @@ Basitçe `dx bundle` komutunu çalıştır ve uygulaman maksimum optimizasyon il ## Fantastik Dökümantasyon -Temiz, okunabilir ve kapsayıcı döküman için bir ton uğraştık. Bütün html elementleri ve listeners(takipçiler) MDN (geliştiriciler için dökümantasyon detay için [tıkla](https://developer.mozilla.org)) ile dökümente edildi, ve güncelliğinden emin olmak için docsite(dökümanlar) Dioxus'un kendisi ile sürekli entegrasyon halinde. Rehbeler, referanslar, tarifler, ve daha fazlası için göz at [Dioxus websitesi](https://dioxuslabs.com/learn/0.5/). İlginç gerçek: Dioxus'un sitesini yeni özelliklerimizi test etmek için deneme tahtası olarak kullanıyoruz -> [Göz at!](https://github.com/dioxusLabs/docsite) +Temiz, okunabilir ve kapsayıcı döküman için bir ton uğraştık. Bütün html elementleri ve listeners(takipçiler) MDN (geliştiriciler için dökümantasyon detay için [tıkla](https://developer.mozilla.org)) ile dökümente edildi, ve güncelliğinden emin olmak için docsite(dökümanlar) Dioxus'un kendisi ile sürekli entegrasyon halinde. Rehbeler, referanslar, tarifler, ve daha fazlası için göz at [Dioxus websitesi](https://dioxuslabs.com/learn/0.6/). İlginç gerçek: Dioxus'un sitesini yeni özelliklerimizi test etmek için deneme tahtası olarak kullanıyoruz -> [Göz at!](https://github.com/dioxusLabs/docsite)
@@ -109,7 +109,7 @@ Temiz, okunabilir ve kapsayıcı döküman için bir ton uğraştık. Bütün ht ## Geliştirici Deneyimini Önemse -Dioxus geliştirici deneyimini önceliklendirir, bu kapsamda end-to-end tooling (uçtan uca araç desteği) için tonla efor harcadık. [VSCode eklentisi](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus) geliştirdik bu sayede RSX kodlarınızı otomatik formatlayabilir, HTML', RSX e çevirebilir ve daha fazlasını yapabilirsiniz. Aynı zamanda geliştirdiğimiz çok güçlü [CLI](https://dioxuslabs.com/learn/0.5/CLI) sayesinde yeni uygulamalar üretmenize yardım ediyor, onları serve (sunmanızı) ve çapraz platform çalışacak şekilde paketlemenizi sağlıyoruz. Yol haritamızda deployment da mevcut. +Dioxus geliştirici deneyimini önceliklendirir, bu kapsamda end-to-end tooling (uçtan uca araç desteği) için tonla efor harcadık. [VSCode eklentisi](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus) geliştirdik bu sayede RSX kodlarınızı otomatik formatlayabilir, HTML', RSX e çevirebilir ve daha fazlasını yapabilirsiniz. Aynı zamanda geliştirdiğimiz çok güçlü [CLI](https://dioxuslabs.com/learn/0.6/CLI) sayesinde yeni uygulamalar üretmenize yardım ediyor, onları serve (sunmanızı) ve çapraz platform çalışacak şekilde paketlemenizi sağlıyoruz. Yol haritamızda deployment da mevcut.
@@ -391,7 +391,7 @@ Dioxus ve Electron benzer amaçlara sahip tamamıyla farklı iki projedir. Elect ## Katkı Sağlama -- [Katkı sağlamayla alakalı kısım](https://dioxuslabs.com/learn/0.5/contributing) için web sitemizi ziyaret edin. +- [Katkı sağlamayla alakalı kısım](https://dioxuslabs.com/learn/0.6/contributing) için web sitemizi ziyaret edin. - [Issue tracker(sorun takipçisi)](https://github.com/dioxuslabs/dioxus/issues) üzerinden sorunlarınızı raporlayabilirsiniz. - Discord'a [katıl](https://discord.gg/XgGxMSkvUM) ve sorularını sor! diff --git a/translations/zh-cn/README.md b/translations/zh-cn/README.md index 8a6d6f90b..ad86ff95c 100644 --- a/translations/zh-cn/README.md +++ b/translations/zh-cn/README.md @@ -45,7 +45,7 @@ | 示例 | - 指南 + 指南 | English | @@ -79,7 +79,7 @@ fn app() -> Element { - [人体工程学的状态管理](https://dioxuslabs.com/blog/release-050),结合了 React、Solid 和 Svelte 的优点 - 非常高效,由 Rust 最快的 wasm 框架 [sledgehammer](https://dioxuslabs.com/blog/templates-diffing) 提供支持 - 集成的捆绑包,可部署到 Web、macOS、Linux 和 Windows -- 还有更多!阅读 [Dioxus 漫游之旅](https://dioxuslabs.com/learn/0.5/)。 +- 还有更多!阅读 [Dioxus 漫游之旅](https://dioxuslabs.com/learn/0.6/)。 ## 瞬时热重载 @@ -91,7 +91,7 @@ fn app() -> Element { ## 用于 Web 和桌面部署的捆绑包 -只需运行 `dx bundle`,您的应用程序将被构建和捆绑,并进行最大化的优化。在 Web 上,利用 [`.avif` 生成,`.wasm` 压缩,代码缩小](https://dioxuslabs.com/learn/0.5/reference/assets),等等。构建的 Web 应用程序大小 [不到 50kb](https://github.com/ealmloff/tiny-dioxus/),桌面/移动应用程序小于 15mb。 +只需运行 `dx bundle`,您的应用程序将被构建和捆绑,并进行最大化的优化。在 Web 上,利用 [`.avif` 生成,`.wasm` 压缩,代码缩小](https://dioxuslabs.com/learn/0.6/guides/assets),等等。构建的 Web 应用程序大小 [不到 50kb](https://github.com/ealmloff/tiny-dioxus/),桌面/移动应用程序小于 15mb。
@@ -99,7 +99,7 @@ fn app() -> Element { ## 出色的文档 -我们花费了大量精力构建清晰、易读和全面的文档。所有 HTML 元素和监听器都使用 MDN 文档进行了记录,并且我们的文档站点通过 Dioxus 本身进行持续集成,以确保文档始终保持最新。查看 [Dioxus 网站](https://dioxuslabs.com/learn/0.5/) 获取指南、参考资料、示例和更多信息。有趣的事实:我们将 Dioxus 网站用作新特性的测试平台 - [来看看吧!](https://github.com/dioxusLabs/docsite) +我们花费了大量精力构建清晰、易读和全面的文档。所有 HTML 元素和监听器都使用 MDN 文档进行了记录,并且我们的文档站点通过 Dioxus 本身进行持续集成,以确保文档始终保持最新。查看 [Dioxus 网站](https://dioxuslabs.com/learn/0.6/) 获取指南、参考资料、示例和更多信息。有趣的事实:我们将 Dioxus 网站用作新特性的测试平台 - [来看看吧!](https://github.com/dioxusLabs/docsite)
@@ -107,7 +107,7 @@ fn app() -> Element { ## 开发者体验的重点 -Dioxus 优先考虑开发者体验,我们为端到端工具链付出了大量努力。我们构建了一个 [VSCode 扩展](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus),可以自动格式化您的 RSX 代码,将 HTML 转换为 RSX 等等。我们还建立了一个非常强大的 [CLI](https://dioxuslabs.com/learn/0.5/CLI),支持创建新应用程序、提供服务和跨平台捆绑,并且部署正在路上。 +Dioxus 优先考虑开发者体验,我们为端到端工具链付出了大量努力。我们构建了一个 [VSCode 扩展](https://marketplace.visualstudio.com/items?itemName=DioxusLabs.dioxus),可以自动格式化您的 RSX 代码,将 HTML 转换为 RSX 等等。我们还建立了一个非常强大的 [CLI](https://dioxuslabs.com/learn/0.6/CLI),支持创建新应用程序、提供服务和跨平台捆绑,并且部署正在路上。
@@ -342,7 +342,7 @@ Dioxus 和 Electron 是两个完全不同的项目,目标相似。Electron 使 ## 贡献 -- 查看网站上有关[贡献的部分](https://dioxuslabs.com/learn/0.5/contributing)。 +- 查看网站上有关[贡献的部分](https://dioxuslabs.com/learn/0.6/contributing)。 - 在我们的 [问题跟踪器](https://github.com/dioxuslabs/dioxus/issues) 上报告问题。 - [加入](https://discord.gg/XgGxMSkvUM) discord 并提出问题!