1
0

hydrate.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. use dioxus::prelude::*;
  2. use wasm_bindgen_test::wasm_bindgen_test;
  3. use web_sys::window;
  4. wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
  5. #[test]
  6. fn makes_tree() {
  7. fn app(cx: Scope) -> Element {
  8. cx.render(rsx! {
  9. div {
  10. div {
  11. h1 {}
  12. }
  13. div {
  14. h2 {}
  15. }
  16. }
  17. })
  18. }
  19. let mut dom = VirtualDom::new(app);
  20. let muts = dom.rebuild();
  21. dbg!(muts.edits);
  22. }
  23. #[wasm_bindgen_test]
  24. fn rehydrates() {
  25. fn app(cx: Scope) -> Element {
  26. cx.render(rsx! {
  27. div {
  28. div {
  29. h1 { "h1" }
  30. }
  31. div {
  32. h2 { "h2" }
  33. }
  34. button {
  35. onclick: move |_| {
  36. println!("clicked");
  37. },
  38. "listener test"
  39. }
  40. false.then(|| rsx!{ "hello" })
  41. }
  42. })
  43. }
  44. let mut dom = VirtualDom::new(app);
  45. let _ = dom.rebuild();
  46. let out = dioxus_ssr::render_vdom_cfg(&dom, |c| c.pre_render(true));
  47. window()
  48. .unwrap()
  49. .document()
  50. .unwrap()
  51. .body()
  52. .unwrap()
  53. .set_inner_html(&format!("<div id='main'>{}</div>", out));
  54. dioxus_web::launch_cfg(app, |c| c.hydrate(true));
  55. }