2021-09-24 06:37:51 +00:00
|
|
|
/*
|
|
|
|
Example: Manual Edits
|
|
|
|
|
|
|
|
It's possible to manually provide a stream of DomEdits to a Dioxus Renderer. All renderers are designed to accept a stream
|
|
|
|
of DomEdits that abstract over a stack machine. This allows the VirtualDOM to exist entirely separately from the RealDOM,
|
|
|
|
though features like NodeRefs and NativeEvents might not work properly everywhere.
|
|
|
|
*/
|
|
|
|
|
|
|
|
use dioxus::core::*;
|
|
|
|
use dioxus::prelude::*;
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
use DomEdit::*;
|
|
|
|
|
|
|
|
let edits = vec![
|
|
|
|
// create a container and push it onto the stack
|
|
|
|
CreateElement { tag: "div", id: 0 },
|
|
|
|
// create an element and push it onto the stack
|
|
|
|
CreateElement { tag: "h1", id: 2 },
|
|
|
|
// create a text node and push it onto the stack
|
|
|
|
CreateTextNode {
|
|
|
|
text: "hello world",
|
|
|
|
id: 3,
|
|
|
|
},
|
|
|
|
// append the text node to the h1 element
|
|
|
|
AppendChildren { many: 1 },
|
|
|
|
// append the h1 element to the container
|
|
|
|
AppendChildren { many: 1 },
|
|
|
|
// append the container to the default render element ("dioxusroot" if used with default config)
|
|
|
|
AppendChildren { many: 1 },
|
|
|
|
];
|
|
|
|
|
2021-10-04 14:22:20 +00:00
|
|
|
dioxus_desktop::run(APP, (), |c| c.with_edits(edits)).unwrap();
|
2021-09-24 06:37:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const APP: FC<()> = |cx, _props| {
|
|
|
|
rsx!(cx, div {
|
|
|
|
"some app"
|
|
|
|
})
|
|
|
|
};
|