//! This example just flexes the ability to use arbitrary expressions within RSX. //! It also proves that lifetimes work properly, especially when used with use_ref use dioxus::prelude::*; fn main() { let mut vdom = VirtualDom::new(example); _ = vdom.rebuild(); let mut renderer = dioxus_ssr::Renderer::new(); renderer.pretty = true; renderer.render(&vdom); } fn example(cx: Scope) -> Element { let items = use_state(cx, || { vec![Thing { a: "asd".to_string(), b: 10, }] }); let things = use_ref(cx, || { vec![Thing { a: "asd".to_string(), b: 10, }] }); let things_list = things.read(); let mything = use_ref(cx, || Some(String::from("asd"))); let mything_read = mything.read(); cx.render(rsx!( div { div { id: "asd", "your neighborhood spiderman" items.iter().cycle().take(5).map(|f| rsx!{ div { "{f.a}" } }) things_list.iter().map(|f| rsx!{ div { "{f.a}" "{f.b}" } }) mything_read.as_ref().map(|f| rsx! { div { "{f}" } }) } } )) } struct Thing { a: String, b: u32, }