lib.rs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #![doc = include_str!("../README.md")]
  2. #![doc(html_logo_url = "https://avatars.githubusercontent.com/u/79236386")]
  3. #![doc(html_favicon_url = "https://avatars.githubusercontent.com/u/79236386")]
  4. mod cache;
  5. pub mod config;
  6. #[cfg(feature = "incremental")]
  7. mod fs_cache;
  8. #[cfg(feature = "incremental")]
  9. pub mod incremental;
  10. #[cfg(feature = "incremental")]
  11. mod incremental_cfg;
  12. pub mod eval;
  13. pub mod renderer;
  14. pub mod template;
  15. use dioxus_core::NoOpMutations;
  16. use dioxus_core::{Element, VirtualDom};
  17. pub use crate::renderer::Renderer;
  18. /// A convenience function to render an `rsx!` call to a string
  19. ///
  20. /// For advanced rendering, create a new `SsrRender`.
  21. pub fn render_element(element: Element) -> String {
  22. fn lazy_app(props: Element) -> Element {
  23. props
  24. }
  25. let mut dom = VirtualDom::new_with_props(lazy_app, element);
  26. dom.in_runtime(crate::eval::init_eval);
  27. dom.rebuild(&mut NoOpMutations);
  28. Renderer::new().render(&dom)
  29. }
  30. /// A convenience function to render an existing VirtualDom to a string
  31. ///
  32. /// We generally recommend creating a new `Renderer` to take advantage of template caching.
  33. pub fn render(dom: &VirtualDom) -> String {
  34. Renderer::new().render(dom)
  35. }
  36. /// A convenience function to pre-render an existing VirtualDom to a string
  37. ///
  38. /// We generally recommend creating a new `Renderer` to take advantage of template caching.
  39. pub fn pre_render(dom: &VirtualDom) -> String {
  40. let mut renderer = Renderer::new();
  41. renderer.pre_render = true;
  42. renderer.render(dom)
  43. }