1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //! 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 out = dioxus_ssr::render_vdom_cfg(&vdom, |c| c.newline(true).indent(true));
- println!("{}", out);
- }
- 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,
- }
|