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

+2 -2
View File
@@ -10,8 +10,8 @@ fn attrs_cycle() {
let mut dom = VirtualDom::new(|| {
let id = generation();
match id % 2 {
0 => render! { div {} },
1 => render! {
0 => rsx! { div {} },
1 => rsx! {
div { h1 { class: "{id}", id: "{id}" } }
},
_ => unreachable!(),
+1 -1
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn bool_test() {
let mut app = VirtualDom::new(|| render!(div { hidden: false }));
let mut app = VirtualDom::new(|| rsx!(div { hidden: false }));
assert_eq!(
app.rebuild_to_vec().santize().edits,
+1 -1
View File
@@ -11,7 +11,7 @@ fn app() -> Element {
let value = raw.parse::<f32>().unwrap_or(123.123);
render! { div { "hello {value}" } }
rsx! { div { "hello {value}" } }
}
#[test]
+3 -3
View File
@@ -6,16 +6,16 @@ fn state_shares() {
fn app() -> Element {
provide_context(generation() as i32);
render!(child_1 {})
rsx!(child_1 {})
}
fn child_1() -> Element {
render!(child_2 {})
rsx!(child_2 {})
}
fn child_2() -> Element {
let value = consume_context::<i32>().unwrap();
render!("Value is {value}")
rsx!("Value is {value}")
}
let mut dom = VirtualDom::new(app);
+7 -7
View File
@@ -12,7 +12,7 @@ use dioxus_core::ElementId;
#[test]
fn test_original_diff() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
div { div { "Hello, world!" } }
}
});
@@ -32,7 +32,7 @@ fn test_original_diff() {
#[test]
fn create() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
div {
div {
"Hello, world!"
@@ -75,7 +75,7 @@ fn create() {
#[test]
fn create_list() {
let mut dom = VirtualDom::new(|| render! {{(0..3).map(|f| render!( div { "hello" } ))}});
let mut dom = VirtualDom::new(|| rsx! {{(0..3).map(|f| rsx!( div { "hello" } ))}});
let _edits = dom.rebuild_to_vec().santize();
@@ -95,7 +95,7 @@ fn create_list() {
#[test]
fn create_simple() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
div {}
div {}
div {}
@@ -122,7 +122,7 @@ fn create_simple() {
#[test]
fn create_components() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
Child { "abc1" }
Child { "abc2" }
Child { "abc3" }
@@ -135,7 +135,7 @@ fn create_components() {
}
fn Child(cx: ChildProps) -> Element {
render! {
rsx! {
h1 {}
div { {cx.children} }
p {}
@@ -150,7 +150,7 @@ fn create_components() {
#[test]
fn anchors() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
if true {
div { "hello" }
}
+1 -1
View File
@@ -4,7 +4,7 @@ use dioxus::prelude::*;
#[test]
fn multiroot() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
div { "Hello a" }
div { "Hello b" }
div { "Hello c" }
+10 -10
View File
@@ -7,7 +7,7 @@ use dioxus_core::ElementId;
#[test]
fn empty_fragment_creates_nothing() {
fn app() -> Element {
render!({ () })
rsx!({ () })
}
let mut vdom = VirtualDom::new(app);
@@ -25,7 +25,7 @@ fn empty_fragment_creates_nothing() {
#[test]
fn root_fragments_work() {
let mut vdom = VirtualDom::new(|| {
render!(
rsx!(
div { "hello" }
div { "goodbye" }
)
@@ -40,16 +40,16 @@ fn root_fragments_work() {
#[test]
fn fragments_nested() {
let mut vdom = VirtualDom::new(|| {
render!(
rsx!(
div { "hello" }
div { "goodbye" }
{render! {
{rsx! {
div { "hello" }
div { "goodbye" }
{render! {
{rsx! {
div { "hello" }
div { "goodbye" }
{render! {
{rsx! {
div { "hello" }
div { "goodbye" }
}}
@@ -67,7 +67,7 @@ fn fragments_nested() {
#[test]
fn fragments_across_components() {
fn app() -> Element {
render! {
rsx! {
demo_child {}
demo_child {}
demo_child {}
@@ -77,7 +77,7 @@ fn fragments_across_components() {
fn demo_child() -> Element {
let world = "world";
render! { "hellO!", {world} }
rsx! { "hellO!", {world} }
}
assert_eq!(
@@ -89,9 +89,9 @@ fn fragments_across_components() {
#[test]
fn list_fragments() {
fn app() -> Element {
render!(
rsx!(
h1 { "hello" }
{(0..6).map(|f| render!( span { "{f}" }))}
{(0..6).map(|f| rsx!( span { "{f}" }))}
)
}
assert_eq!(
+2 -2
View File
@@ -5,11 +5,11 @@ use dioxus_core::ElementId;
// A real-world usecase of templates at peak performance
// In react, this would be a lot of node creation.
//
// In Dioxus, we memoize the render! body and simplify it down to a few template loads
// In Dioxus, we memoize the rsx! body and simplify it down to a few template loads
//
// Also note that the IDs increase linearly. This lets us drive a vec on the renderer for O(1) re-indexing
fn app() -> Element {
render! {
rsx! {
div {
for i in 0..3 {
div {
+5 -5
View File
@@ -6,7 +6,7 @@ use dioxus_core::ElementId;
#[test]
fn nested_passthru_creates() {
fn app() -> Element {
render! {
rsx! {
PassThru {
PassThru {
PassThru { div { "hi" } }
@@ -17,7 +17,7 @@ fn nested_passthru_creates() {
#[component]
fn PassThru(children: Element) -> Element {
render!({ children })
rsx!({ children })
}
let mut dom = VirtualDom::new(app);
@@ -38,7 +38,7 @@ fn nested_passthru_creates() {
#[test]
fn nested_passthru_creates_add() {
fn app() -> Element {
render! {
rsx! {
ChildComp {
"1"
ChildComp {
@@ -54,7 +54,7 @@ fn nested_passthru_creates_add() {
#[component]
fn ChildComp(children: Element) -> Element {
render! {{children}}
rsx! {{children}}
}
let mut dom = VirtualDom::new(app);
@@ -81,7 +81,7 @@ fn dynamic_node_as_root() {
fn app() -> Element {
let a = 123;
let b = 456;
render! { "{a}", "{b}" }
rsx! { "{a}", "{b}" }
}
let mut dom = VirtualDom::new(app);
+2 -2
View File
@@ -5,8 +5,8 @@ use dioxus::prelude::*;
#[test]
fn cycling_elements() {
let mut dom = VirtualDom::new(|| match generation() % 2 {
0 => render! { div { "wasd" } },
1 => render! { div { "abcd" } },
0 => rsx! { div { "wasd" } },
1 => rsx! { div { "abcd" } },
_ => unreachable!(),
});
+11 -11
View File
@@ -13,46 +13,46 @@ fn component_swap() {
render_phase += 1;
match *render_phase() {
0 => render! {
0 => rsx! {
nav_bar {}
dash_board {}
},
1 => render! {
1 => rsx! {
nav_bar {}
dash_results {}
},
2 => render! {
2 => rsx! {
nav_bar {}
dash_board {}
},
3 => render! {
3 => rsx! {
nav_bar {}
dash_results {}
},
4 => render! {
4 => rsx! {
nav_bar {}
dash_board {}
},
_ => render!("blah"),
_ => rsx!("blah"),
}
}
fn nav_bar() -> Element {
render! {
h1 { "NavBar", {(0..3).map(|_| render!(nav_link {}))} }
rsx! {
h1 { "NavBar", {(0..3).map(|_| rsx!(nav_link {}))} }
}
}
fn nav_link() -> Element {
render!( h1 { "nav_link" } )
rsx!( h1 { "nav_link" } )
}
fn dash_board() -> Element {
render!( div { "dashboard" } )
rsx!( div { "dashboard" } )
}
fn dash_results() -> Element {
render!( div { "results" } )
rsx!( div { "results" } )
}
let mut dom = VirtualDom::new(app);
+3 -3
View File
@@ -6,7 +6,7 @@ use dioxus_core::{ElementId, NoOpMutations};
fn text_diff() {
fn app() -> Element {
let gen = generation();
render!( h1 { "hello {gen}" } )
rsx!( h1 { "hello {gen}" } )
}
let mut vdom = VirtualDom::new(app);
@@ -37,8 +37,8 @@ fn element_swap() {
let gen = generation();
match gen % 2 {
0 => render!( h1 { "hello 1" } ),
1 => render!( h2 { "hello 2" } ),
0 => rsx!( h1 { "hello 1" } ),
1 => rsx!( h2 { "hello 2" } ),
_ => unreachable!(),
}
}
+12 -12
View File
@@ -17,7 +17,7 @@ fn keyed_diffing_out_of_order() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
{
@@ -59,7 +59,7 @@ fn keyed_diffing_out_of_order_adds() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -85,7 +85,7 @@ fn keyed_diffing_out_of_order_adds_3() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -111,7 +111,7 @@ fn keyed_diffing_out_of_order_adds_4() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -137,7 +137,7 @@ fn keyed_diffing_out_of_order_adds_5() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -162,7 +162,7 @@ fn keyed_diffing_additions() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -187,7 +187,7 @@ fn keyed_diffing_additions_and_moves_on_ends() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -216,7 +216,7 @@ fn keyed_diffing_additions_and_moves_in_middle() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -250,7 +250,7 @@ fn controlled_keyed_diffing_out_of_order() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -284,7 +284,7 @@ fn controlled_keyed_diffing_out_of_order_max_test() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -313,7 +313,7 @@ fn remove_list() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
@@ -338,7 +338,7 @@ fn no_common_keys() {
_ => unreachable!(),
};
render!({ order.iter().map(|i| render!(div { key: "{i}" })) })
rsx!({ order.iter().map(|i| rsx!(div { key: "{i}" })) })
});
dom.rebuild(&mut dioxus_core::NoOpMutations);
+7 -7
View File
@@ -7,7 +7,7 @@ fn list_creates_one_by_one() {
let mut dom = VirtualDom::new(|| {
let gen = generation();
render! {
rsx! {
div {
for i in 0..gen {
div { "{i}" }
@@ -76,7 +76,7 @@ fn removes_one_by_one() {
let mut dom = VirtualDom::new(|| {
let gen = 3 - generation() % 4;
render! {
rsx! {
div {
for i in 0..gen {
div { "{i}" }
@@ -151,7 +151,7 @@ fn removes_one_by_one() {
#[test]
fn list_shrink_multiroot() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
div {
for i in 0..generation() {
div { "{i}" }
@@ -212,7 +212,7 @@ fn removes_one_by_one_multiroot() {
let mut dom = VirtualDom::new(|| {
let gen = 3 - generation() % 4;
render! {
rsx! {
div {
{(0..gen).map(|i| rsx! {
div { "{i}" }
@@ -275,7 +275,7 @@ fn removes_one_by_one_multiroot() {
#[test]
fn two_equal_fragments_are_equal_static() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
for _ in 0..5 {
div { "hello" }
}
@@ -289,7 +289,7 @@ fn two_equal_fragments_are_equal_static() {
#[test]
fn two_equal_fragments_are_equal() {
let mut dom = VirtualDom::new(|| {
render! {
rsx! {
for i in 0..5 {
div { "hello {i}" }
}
@@ -310,7 +310,7 @@ fn remove_many() {
_ => unreachable!(),
};
render! {
rsx! {
for i in 0..num {
div { "hello {i}" }
}
+2 -2
View File
@@ -9,7 +9,7 @@ fn catches_panic() {
}
fn app() -> Element {
render! {
rsx! {
div {
h1 { "Title" }
@@ -28,5 +28,5 @@ fn ThrowChild() -> Element {
let _g: i32 = "123123".parse().throw()?;
render! { div {} }
rsx! { div {} }
}
+3 -3
View File
@@ -52,14 +52,14 @@ fn events_propagate() {
}
fn app() -> Element {
render! {
rsx! {
div { onclick: move |_| {
println!("top clicked");
*CLICKS.lock().unwrap() += 1;
},
{vec![
render! {
rsx! {
problematic_child {}
}
].into_iter()}
@@ -68,7 +68,7 @@ fn app() -> Element {
}
fn problematic_child() -> Element {
render! {
rsx! {
button { onclick: move |evt| {
println!("bottom clicked");
let mut clicks = CLICKS.lock().unwrap();
+1 -1
View File
@@ -5,7 +5,7 @@ fn basic_syntax_is_a_template() -> Element {
let asd = 123;
let var = 123;
render! {
rsx! {
div { key: "12345", class: "asd", class: "{asd}", class: if true {
"{asd}"
}, class: if false {
+2 -2
View File
@@ -19,7 +19,7 @@ fn manual_diffing() {
fn app(cx: AppProps) -> Element {
let val = cx.value.lock().unwrap();
render! { div { "{val}" } }
rsx! { div { "{val}" } }
};
let value = Arc::new(Mutex::new("Hello"));
@@ -46,7 +46,7 @@ fn events_generate() {
let mut count = use_signal(|| 0);
match *count() {
0 => render! {
0 => rsx! {
div { onclick: move |_| count += 1,
div { "nested" }
"Click me!"
+2 -2
View File
@@ -27,7 +27,7 @@ fn app() -> Element {
let mut idx = use_signal(|| 0);
let onhover = |_| println!("go!");
render! {
rsx! {
div {
button {
onclick: move |_| {
@@ -48,5 +48,5 @@ fn app() -> Element {
#[component]
fn ChildExample(i: i32, onhover: EventHandler<MouseEvent>) -> Element {
render! { li { onmouseover: move |e| onhover.call(e), "{i}" } }
rsx! { li { onmouseover: move |e| onhover.call(e), "{i}" } }
}
+11 -11
View File
@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn app_drops() {
fn app() -> Element {
render! { div {} }
rsx! { div {} }
}
let mut dom = VirtualDom::new(app);
@@ -21,7 +21,7 @@ fn hooks_drop() {
use_hook(|| String::from("asd"));
use_hook(|| String::from("asd"));
render! { div {} }
rsx! { div {} }
}
let mut dom = VirtualDom::new(app);
@@ -36,7 +36,7 @@ fn contexts_drop() {
fn app() -> Element {
provide_context(String::from("asd"));
render! {
rsx! {
div { ChildComp {} }
}
}
@@ -44,7 +44,7 @@ fn contexts_drop() {
fn ChildComp() -> Element {
let el = consume_context::<String>().unwrap();
render! { div { "hello {el}" } }
rsx! { div { "hello {el}" } }
}
let mut dom = VirtualDom::new(app);
@@ -61,7 +61,7 @@ fn tasks_drop() {
// tokio::time::sleep(std::time::Duration::from_millis(100000)).await;
});
render! { div {} }
rsx! { div {} }
}
let mut dom = VirtualDom::new(app);
@@ -77,7 +77,7 @@ fn root_props_drop() {
struct RootProps(String);
let mut dom = VirtualDom::new_with_props(
|cx| render!( div { "{cx.0}" } ),
|cx| rsx!( div { "{cx.0}" } ),
RootProps("asdasd".to_string()),
);
@@ -89,11 +89,11 @@ fn root_props_drop() {
#[test]
fn diffing_drops_old() {
fn app() -> Element {
render! {
rsx! {
div {
match generation() % 2 {
0 => render!( ChildComp1 { name: "asdasd".to_string() }),
1 => render!( ChildComp2 { name: "asdasd".to_string() }),
0 => rsx!( ChildComp1 { name: "asdasd".to_string() }),
1 => rsx!( ChildComp2 { name: "asdasd".to_string() }),
_ => todo!()
}
}
@@ -102,12 +102,12 @@ fn diffing_drops_old() {
#[component]
fn ChildComp1(name: String) -> Element {
render! {"Hello {name}"}
rsx! {"Hello {name}"}
}
#[component]
fn ChildComp2(name: String) -> Element {
render! {"Goodbye {name}"}
rsx! {"Goodbye {name}"}
}
let mut dom = VirtualDom::new(app);
+9 -9
View File
@@ -16,14 +16,14 @@ fn test_memory_leak() {
spawn(async {});
if val == 2 || val == 4 {
return render!({});
return rsx!({});
}
let mut name = use_hook(|| String::from("numbers: "));
name.push_str("123 ");
render!(
rsx!(
div { "Hello, world!" }
Child {}
Child {}
@@ -45,7 +45,7 @@ fn test_memory_leak() {
}
fn BorrowedChild(cx: BorrowedProps) -> Element {
render! {
rsx! {
div {
"goodbye {cx.name}"
Child {}
@@ -55,7 +55,7 @@ fn test_memory_leak() {
}
fn Child() -> Element {
render!( div { "goodbye world" } )
rsx!( div { "goodbye world" } )
}
let mut dom = VirtualDom::new(app);
@@ -79,7 +79,7 @@ fn memo_works_properly() {
let name = use_hook(|| String::from("asd"));
render!(
rsx!(
div { "Hello, world! {name}" }
Child { na: "asdfg".to_string() }
)
@@ -91,7 +91,7 @@ fn memo_works_properly() {
}
fn Child(cx: ChildProps) -> Element {
render!( div { "goodbye world" } )
rsx!( div { "goodbye world" } )
}
let mut dom = VirtualDom::new(app);
@@ -119,11 +119,11 @@ fn free_works_on_root_hooks() {
fn app(cx: AppProps) -> Element {
let name: AppProps = use_hook(|| cx.clone());
render!(child_component { inner: name.inner.clone() })
rsx!(child_component { inner: name.inner.clone() })
}
fn child_component(props: AppProps) -> Element {
render!( div { "{props.inner}" } )
rsx!( div { "{props.inner}" } )
}
let ptr = Rc::new("asdasd".to_string());
@@ -176,7 +176,7 @@ fn supports_async() {
let mid = colors[1];
let small = colors[2];
render! {
rsx! {
div { background: "{big}", height: "stretch", width: "stretch", padding: "50",
label { "hello" }
div { background: "{mid}", height: "auto", width: "stretch", padding: "{padding}",
+1 -1
View File
@@ -5,7 +5,7 @@ use dioxus::prelude::*;
/// Ensure no issues with not calling rebuild_to_vec
#[test]
fn root_node_isnt_null() {
let dom = VirtualDom::new(|| render!("Hello world!"));
let dom = VirtualDom::new(|| rsx!("Hello world!"));
let scope = dom.base_scope();
+2 -2
View File
@@ -20,7 +20,7 @@ fn suspense_resolves() {
}
fn app() -> Element {
render!(
rsx!(
div {
"Waiting for... "
suspended_child {}
@@ -38,5 +38,5 @@ fn suspended_child() -> Element {
suspend()?;
}
render!("child")
rsx!("child")
}
+1 -1
View File
@@ -25,7 +25,7 @@ async fn it_works() {
});
});
render!({ () })
rsx!({ () })
}
let mut dom = VirtualDom::new(app);