Element

Trait Element 

Source
pub trait Element<C>: 'static { }
Expand description

An Element is anything that can produce a DOM node. The most common examples include HtmlElement and types like String.

Additionally, closures with the appropriate signature also implement this trait. See the Reactivity chapter in the book for more examples.

🚨 You should generally NOT implement this trait manually. Instead, prefer sub-components (for stateful elements) or stateless components (which are simply functions returning an Element).

§❌ Don’t

Avoid manually implementing Element for custom components:

struct MyFancyButton(&'static str);
impl<C> Element<C> for MyFancyButton {/* ... */}

§✅ Do

Instead, use a function-based stateless component:

fn my_fancy_button<C>(name: &'static str) -> impl Element<C> {
    e::button() /* ... */
}

This keeps your UI cleaner, more composable, and easier to maintain. 🚀✨

Implementations on Foreign Types§

Source§

impl<C> Element<C> for &'static str

Source§

impl<C> Element<C> for Cow<'static, str>

Source§

impl<C> Element<C> for f32

Source§

impl<C> Element<C> for f64

Source§

impl<C> Element<C> for i8

Source§

impl<C> Element<C> for i16

Source§

impl<C> Element<C> for i32

Source§

impl<C> Element<C> for i64

Source§

impl<C> Element<C> for i128

Source§

impl<C> Element<C> for isize

Source§

impl<C> Element<C> for u8

Source§

impl<C> Element<C> for u16

Source§

impl<C> Element<C> for u32

Source§

impl<C> Element<C> for u64

Source§

impl<C> Element<C> for u128

Source§

impl<C> Element<C> for usize

Source§

impl<C> Element<C> for Box<str>

Source§

impl<C> Element<C> for Rc<str>

Source§

impl<C> Element<C> for String

Source§

impl<C> Element<C> for Arc<str>

Source§

impl<C> Element<C> for Node

Source§

impl<T: Element<C>, C: ComponentData> Element<C> for Option<T>

Source§

impl<T: Element<C>, E: Element<C>, C: ComponentData> Element<C> for Result<T, E>

Implementors§

Source§

impl<C> Element<C> for Comment

Source§

impl<C: ComponentData> Element<C> for HtmlElement<C>

Source§

impl<F, C, R> Element<C> for F
where F: Fn(&mut RenderCtx<'_, C>) -> R + 'static, R: Element<C> + 'static, C: ComponentData,

Source§

impl<I, P> Element<P> for C<I>
where I: Component + 'static,