feat: overhaul ssr

This commit is contained in:
Jonathan Kelley committed 2022-12-06 17:41:47 -08:00
1 parent e8ae1fb83e
commit 34d9aafe0e
16 files changed
+263 -561

No files matched your search

+30 -38
View File
@@ -7,66 +7,43 @@ fn simple() {
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
_ = dom.rebuild();
assert_eq!(dioxus_ssr::render(&dom), "<div>hello!</div>");
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
dioxus_ssr::render_lazy(rsx!( div {"hello!"} )),
"<div>hello!</div>"
);
}
#[test]
fn lists() {
fn app(cx: Scope) -> Element {
render! {
assert_eq!(
dioxus_ssr::render_lazy(rsx! {
ul {
(0..5).map(|i| rsx! {
li { "item {i}" }
})
}
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
}),
"<ul><li>item 0</li><li>item 1</li><li>item 2</li><li>item 3</li><li>item 4</li></ul>"
);
}
#[test]
fn dynamic() {
fn app(cx: Scope) -> Element {
let dynamic = 123;
render! {
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
let dynamic = 123;
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
dioxus_ssr::render_lazy(rsx! {
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
}),
"<div>Hello world 1 -->123<-- Hello world 2</div>"
);
}
#[test]
fn components() {
fn app(cx: Scope) -> Element {
render! {
div {
(0..5).map(|name| rsx! {
my_component { name: name }
})
}
}
}
#[inline_props]
fn my_component(cx: Scope, name: i32) -> Element {
render! {
@@ -74,11 +51,26 @@ fn components() {
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
dioxus_ssr::render_lazy(rsx! {
div {
(0..5).map(|name| rsx! {
my_component { name: name }
})
}
}),
"<div><div>component 0</div><div>component 1</div><div>component 2</div><div>component 3</div><div>component 4</div></div>"
);
}
#[test]
fn fragments() {
assert_eq!(
dioxus_ssr::render_lazy(rsx! {
div {
(0..5).map(|_| rsx! (()))
}
}),
"<div></div>"
);
}