Enum virtual_node::VirtualNode [−][src]
Expand description
When building your views you’ll typically use the html! macro to generate
VirtualNode’s.
html! { <div> <span></span> </div> } really generates a VirtualNode with
one child (span).
Later, on the client side, you’ll use the diff and patch modules to
update the real DOM with your latest tree of virtual nodes (virtual dom).
Or on the server side you’ll just call .to_string() on your root virtual node
in order to recursively render the node and all of its children.
TODO: Make all of these fields private and create accessor methods TODO: Create a builder to create instances of VirtualNode::Element with attrs and children without having to explicitly create a VElement
Variants
Element(VElement)An element node (node type ELEMENT_NODE).
Text(VText)A text node (node type TEXT_NODE).
Note: This wraps a VText instead of a plain String in
order to enable custom methods like create_text_node() on the
wrapped type.
Implementations
Get a vector of all of the VirtualNode children / grandchildren / etc of your virtual_node.
Children are visited recursively depth first.
Examples
let component = html! { <div> <span> {"Hi!"} </span> <em> {"There!!"} </em> <div> {"My Friend"} </div> </div> }; let children = component.children_recursive(); assert_eq!(children[2].tag(), "em");
Create a new virtual element node with a given tag.
These get patched into the DOM using document.createElement
let _div = VirtualNode::element("div");
Create a new virtual text node with the given text.
These get patched into the DOM using document.createTextNode
let _text = VirtualNode::text("My text node");
Create and return a CreatedNode instance (containing a DOM Node
together with potentially related closures) for this virtual node.
Used by html-macro to insert space before text that is inside of a block that came after an open tag.
html! {
So that we end up with
Used by html-macro to insert space after braced text if we know that the next block is another block or a closing tag.
html! {
So that we end up with
Trait Implementations
Performs the conversion.
Performs the conversion.
type Item = VirtualNode
type Item = VirtualNodeThe type of the elements being iterated over.
type IntoIter = IntoIter<VirtualNode>
type IntoIter = IntoIter<VirtualNode>Which kind of iterator are we turning this into?
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl !RefUnwindSafe for VirtualNodeimpl !Send for VirtualNodeimpl !Sync for VirtualNodeimpl Unpin for VirtualNodeimpl !UnwindSafe for VirtualNode