dioxus/examples/ssr.rs

49 lines
1.1 KiB
Rust
Raw Normal View History

//! Example: SSR
//!
//! This example shows how we can render the Dioxus Virtualdom using SSR.
use std::fmt::Write;
2021-07-11 23:31:07 +00:00
use dioxus::prelude::*;
2022-11-16 07:22:41 +00:00
use dioxus_ssr::config::SsrConfig;
2021-07-11 23:31:07 +00:00
fn main() {
// We can render VirtualDoms
let mut vdom = VirtualDom::new(app);
let _ = vdom.rebuild();
println!("{}", dioxus_ssr::render_vdom(&vdom));
// Or we can render rsx! calls themselves
println!(
"{}",
dioxus_ssr::render_lazy(rsx! {
div {
h1 { "Hello, world!" }
}
})
);
// We can configure the SSR rendering to add ids for rehydration
println!(
"{}",
2022-11-16 07:22:41 +00:00
dioxus_ssr::render_vdom_cfg(&vdom, SsrConfig::default().pre_render(true))
);
// We can even render as a writer
let mut file = String::new();
let _ = file.write_fmt(format_args!(
"{}",
2022-11-16 07:22:41 +00:00
dioxus_ssr::SsrRender::default().render_vdom(&vdom)
));
println!("{}", file);
2021-07-11 23:31:07 +00:00
}
fn app(cx: Scope) -> Element {
2021-07-11 23:31:07 +00:00
cx.render(rsx!(
div {
h1 { "Title" }
p { "Body" }
}
))
}