pub struct XElement {
pub key: XKey,
pub tag_name: Option<XString>,
pub value: XElementValue,
pub before_render: Option<OnRenderCallback>,
pub after_render: Option<OnRenderCallback>,
}Expand description
Represents a generated HTML element.
Example: the HTML tag <input type="text" name="username" value="LamparoS@Pavy.one" />
would be written as
XElement {
tag_name: Some("form".into()),
key: XKey::default(),
value: XElementValue::Static {
attributes: vec![],
children: vec![XNode::from(XElement {
tag_name: Some("input".into()),
key: XKey::default(),
value: XElementValue::Static {
attributes: vec![
XAttribute { name: "type".into(), value: "text".into() },
XAttribute { name: "name".into(), value: "username".into() },
XAttribute { name: "value".into(), value: "LamparoS@Pavy.one".into() },
],
children: vec![],
events: vec![],
},
before_render: None,
after_render: None,
})],
events: vec![],
},
before_render: None,
after_render: None,
}Fields§
§key: XKeyThe key of an element is used to reconcile a generated XElement with an existing Element node.
This allows reusing existing DOM nodes instead of generating entirely new ones when an XElement is recomputed after a signal is updated and triggers.
If the key is not set, a key is generated using the ordinal position of the node, and nodes are merged on a best-effort basis.
tag_name: Option<XString>The name of the HTML tag. Can be None when provided by a #[template(tag = ...)] attribute.
value: XElementValueThe content of the HTML node.
before_render: Option<OnRenderCallback>A callback executed after the Element is created but before it is rendered.
On first render this will always be an empty node.
after_render: Option<OnRenderCallback>A callback executed after the Element is rendered.