depreciate the render macro

This commit is contained in:
Evan Almloff committed 2024-01-16 13:18:46 -06:00
1 parent 90d0164b9e
commit e65c5f0eb3
148 files changed
+459 -458

No files matched your search

+7 -7
View File
@@ -18,7 +18,7 @@ This crate is a part of the broader Dioxus ecosystem. For more resources about D
Dioxus SSR provides utilities to render Dioxus components to valid HTML. Once rendered, the HTML can be rehydrated client-side or served from your web server of choice.
```rust, ignore
let app: Component = |cx| render!(div {"hello world!"});
let app: Component = |cx| rsx!(div {"hello world!"});
let mut vdom = VirtualDom::new(app);
let _ = vdom.rebuild();
@@ -29,12 +29,12 @@ assert_eq!(text, "<div>hello world!</div>")
## Basic Usage
The simplest example is to simply render some `render!` nodes to HTML. This can be done with the [`render_element`] API.
The simplest example is to simply render some `rsx!` nodes to HTML. This can be done with the [`render_element`] API.
```rust, ignore
let content = dioxus_ssr::render_element(render!{
let content = dioxus_ssr::render_element(rsx!{
div {
(0..5).map(|i| render!(
(0..5).map(|i| rsx!(
"Number: {i}"
))
}
@@ -84,10 +84,10 @@ The rest of the space - IE doing this more efficiently, caching the VirtualDom,
## Usage without a VirtualDom
Dioxus SSR needs an arena to allocate from - whether it be the VirtualDom or a dedicated Bump allocator. To render `render!` directly to a string, you'll want to create a `Renderer` and call `render_element`.
Dioxus SSR needs an arena to allocate from - whether it be the VirtualDom or a dedicated Bump allocator. To render `rsx!` directly to a string, you'll want to create a `Renderer` and call `render_element`.
```rust, ignore
let text = dioxus_ssr::Renderer::new().render_element(render!{
let text = dioxus_ssr::Renderer::new().render_element(rsx!{
div { "hello world" }
});
assert_eq!(text, "<div>hello world!</div>")
@@ -96,7 +96,7 @@ assert_eq!(text, "<div>hello world!</div>")
This can be automated with the `render_element!` macro:
```rust, ignore
let text = render_element!(render!( div { "hello world" } ));
let text = render_element!(rsx!( div { "hello world" } ));
```
## Usage in static site generation
+1 -1
View File
@@ -19,7 +19,7 @@ use dioxus_core::{Element, VirtualDom};
pub use crate::renderer::Renderer;
/// A convenience function to render an `render!` call to a string
/// A convenience function to render an `rsx!` call to a string
///
/// For advanced rendering, create a new `SsrRender`.
pub fn render_element(element: Element) -> String {
+3 -3
View File
@@ -232,7 +232,7 @@ fn to_string_works() {
let dynamic = 123;
let dyn2 = "</diiiiiiiiv>"; // this should be escaped
render! {
rsx! {
div { class: "asdasdasd", class: "asdasdasd", id: "id-{dynamic}",
"Hello world 1 -->"
"{dynamic}"
@@ -289,7 +289,7 @@ fn empty_for_loop_works() {
use dioxus::prelude::*;
fn app() -> Element {
render! {
rsx! {
div { class: "asdasdasd",
for _ in (0..5) {
@@ -332,7 +332,7 @@ fn empty_render_works() {
use dioxus::prelude::*;
fn app() -> Element {
render! {}
rsx! {}
}
let mut dom = VirtualDom::new(app);
+2 -2
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn static_boolean_attributs() {
fn app() -> Element {
render! {
rsx! {
div { hidden: "false" }
div { hidden: "true" }
}
@@ -21,7 +21,7 @@ fn static_boolean_attributs() {
#[test]
fn dynamic_boolean_attributs() {
fn app() -> Element {
render! {
rsx! {
div { hidden: false }
div { hidden: true }
}
+16 -16
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn root_ids() {
fn app() -> Element {
render! { div { width: "100px" } }
rsx! { div { width: "100px" } }
}
let mut dom = VirtualDom::new(app);
@@ -19,7 +19,7 @@ fn root_ids() {
fn dynamic_attributes() {
fn app() -> Element {
let dynamic = 123;
render! {
rsx! {
div { width: "100px", div { width: "{dynamic}px" } }
}
}
@@ -36,7 +36,7 @@ fn dynamic_attributes() {
#[test]
fn listeners() {
fn app() -> Element {
render! {
rsx! {
div { width: "100px", div { onclick: |_| {} } }
}
}
@@ -51,7 +51,7 @@ fn listeners() {
fn app2() -> Element {
let dynamic = 123;
render! {
rsx! {
div { width: "100px", div { width: "{dynamic}px", onclick: |_| {} } }
}
}
@@ -69,7 +69,7 @@ fn listeners() {
fn text_nodes() {
fn app() -> Element {
let dynamic_text = "hello";
render! {
rsx! {
div { {dynamic_text} }
}
}
@@ -84,7 +84,7 @@ fn text_nodes() {
fn app2() -> Element {
let dynamic = 123;
render! {
rsx! {
div { "{dynamic}", "{1234}" }
}
}
@@ -102,11 +102,11 @@ fn text_nodes() {
#[test]
fn components_hydrate() {
fn app() -> Element {
render! { Child {} }
rsx! { Child {} }
}
fn Child() -> Element {
render! { div { "hello" } }
rsx! { div { "hello" } }
}
let mut dom = VirtualDom::new(app);
@@ -118,12 +118,12 @@ fn components_hydrate() {
);
fn app2() -> Element {
render! { Child2 {} }
rsx! { Child2 {} }
}
fn Child2() -> Element {
let dyn_text = "hello";
render! {
rsx! {
div { {dyn_text} }
}
}
@@ -137,11 +137,11 @@ fn components_hydrate() {
);
fn app3() -> Element {
render! { Child3 {} }
rsx! { Child3 {} }
}
fn Child3() -> Element {
render! { div { width: "{1}" } }
rsx! { div { width: "{1}" } }
}
let mut dom = VirtualDom::new(app3);
@@ -153,13 +153,13 @@ fn components_hydrate() {
);
fn app4() -> Element {
render! { Child4 {} }
rsx! { Child4 {} }
}
fn Child4() -> Element {
render! {
rsx! {
for _ in 0..2 {
{render! { "{1}" }}
{rsx! { "{1}" }}
}
}
}
@@ -180,7 +180,7 @@ fn hello_world_hydrates() {
fn app() -> Element {
let mut count = use_signal(|| 0);
render! {
rsx! {
h1 { "High-Five counter: {count}" }
button { onclick: move |_| count += 1, "Up high!" }
button { onclick: move |_| count -= 1, "Down low!" }
+2 -2
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn static_inner_html() {
fn app() -> Element {
render! { div { dangerous_inner_html: "<div>1234</div>" } }
rsx! { div { dangerous_inner_html: "<div>1234</div>" } }
}
let mut dom = VirtualDom::new(app);
@@ -16,7 +16,7 @@ fn static_inner_html() {
fn dynamic_inner_html() {
fn app() -> Element {
let inner_html = "<div>1234</div>";
render! { div { dangerous_inner_html: "{inner_html}" } }
rsx! { div { dangerous_inner_html: "{inner_html}" } }
}
let mut dom = VirtualDom::new(app);
+10 -10
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn simple() {
fn App() -> Element {
render! { div { "hello!" } }
rsx! { div { "hello!" } }
}
let mut dom = VirtualDom::new(App);
@@ -12,7 +12,7 @@ fn simple() {
assert_eq!(dioxus_ssr::render(&dom), "<div>hello!</div>");
assert_eq!(
dioxus_ssr::render_element(render!( div {"hello!"} )),
dioxus_ssr::render_element(rsx!( div {"hello!"} )),
"<div>hello!</div>"
);
}
@@ -20,10 +20,10 @@ fn simple() {
#[test]
fn lists() {
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
ul {
{
(0..5).map(|i| render! {
(0..5).map(|i| rsx! {
li { "item {i}" }
})
}
@@ -37,7 +37,7 @@ fn lists() {
fn dynamic() {
let dynamic = 123;
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
}),
"<div>Hello world 1 --&gt;123&lt;-- Hello world 2</div>"
@@ -52,14 +52,14 @@ fn components() {
}
fn MyComponent(MyComponentProps { name }: MyComponentProps) -> Element {
render! { div { "component {name}" } }
rsx! { div { "component {name}" } }
}
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
div {
{
(0..5).map(|name| render! {
(0..5).map(|name| rsx! {
MyComponent { name: name }
})
}
@@ -72,10 +72,10 @@ fn components() {
#[test]
fn fragments() {
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
div {
{
(0..5).map(|_| render! ({}))
(0..5).map(|_| rsx! ({}))
}
}
}),
+3 -3
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn static_styles() {
fn app() -> Element {
render! { div { width: "100px" } }
rsx! { div { width: "100px" } }
}
let mut dom = VirtualDom::new(app);
@@ -20,7 +20,7 @@ fn partially_dynamic_styles() {
let dynamic = 123;
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
div { width: "100px", height: "{dynamic}px" }
}),
r#"<div style="width:100px;height:123px;"></div>"#
@@ -32,7 +32,7 @@ fn dynamic_styles() {
let dynamic = 123;
assert_eq!(
dioxus_ssr::render_element(render! {
dioxus_ssr::render_element(rsx! {
div { width: "{dynamic}px" }
}),
r#"<div style="width:123px;"></div>"#