syntax2.rs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. use std::marker::PhantomData;
  2. use dioxus::component::Scope;
  3. use dioxus::events::on::MouseEvent;
  4. use dioxus::nodes::{IntoVNode, IntoVNodeList};
  5. use dioxus_core as dioxus;
  6. use dioxus_core::prelude::*;
  7. use dioxus_core_macro::*;
  8. use dioxus_html as dioxus_elements;
  9. fn main() {}
  10. fn t() {
  11. let g = rsx! {
  12. div {
  13. div {
  14. }
  15. }
  16. };
  17. let g = {
  18. let ___p: Box<dyn FnOnce(NodeFactory) -> VNode> = Box::new(|__cx: NodeFactory| {
  19. use dioxus_elements::{GlobalAttributes, SvgAttributes};
  20. __cx.element(dioxus_elements::div, [], [], [], None)
  21. });
  22. // let __z = ___p as ;
  23. // __z
  24. };
  25. }
  26. fn App((cx, props): Scope<()>) -> Element {
  27. let a = rsx! {
  28. div {
  29. "asd"
  30. }
  31. };
  32. let p = (0..10).map(|f| {
  33. rsx! {
  34. div {
  35. }
  36. }
  37. });
  38. let g = match "text" {
  39. "a" => rsx!("asd"),
  40. b => rsx!("asd"),
  41. };
  42. let items = ["bob", "bill", "jack"];
  43. let f = items
  44. .iter()
  45. .filter(|f| f.starts_with('b'))
  46. .map(|f| rsx!("hello {f}"));
  47. cx.render(rsx! {
  48. div {
  49. div {
  50. {a}
  51. {p}
  52. {g}
  53. {f}
  54. }
  55. }
  56. })
  57. }
  58. // std::boxed::Box<dyn for<'r> std::ops::FnOnce(dioxus_core::NodeFactory<'r>) -> dioxus_core::VNode<'_>>