works.rs 825 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. use dioxus::prelude::*;
  2. use dioxus_core as dioxus;
  3. use dioxus_core_macro::*;
  4. use dioxus_html as dioxus_elements;
  5. fn main() {
  6. let _ = VirtualDom::new(Parent);
  7. }
  8. fn Parent(cx: Context, props: &()) -> Element {
  9. let value = cx.use_hook(|_| String::new(), |f| &*f);
  10. cx.render(rsx! {
  11. div {
  12. Child { name: value }
  13. Fragment { "asd" }
  14. }
  15. })
  16. }
  17. #[derive(Props)]
  18. struct ChildProps<'a> {
  19. name: &'a str,
  20. }
  21. fn Child(cx: Context, props: &ChildProps) -> Element {
  22. cx.render(rsx! {
  23. div {
  24. h1 { "it's nested" }
  25. Child2 { name: props.name }
  26. }
  27. })
  28. }
  29. #[derive(Props)]
  30. struct Grandchild<'a> {
  31. name: &'a str,
  32. }
  33. fn Child2(cx: Context, props: &Grandchild) -> Element {
  34. cx.render(rsx! {
  35. div { "Hello {props.name}!" }
  36. })
  37. }