Skip to main content

Component

Trait Component 

Source
pub trait Component:
    ComponentKey
    + PartialEq
    + 'static {
    // Required method
    fn render(&self) -> impl IntoElement;

    // Provided method
    fn render_key(&self) -> DiffKey { ... }
}
Expand description

Encapsulate reusable pieces of UI by using the Component trait. Every Component creates a new layer of state in the app, meaning that implementors of Component can make use of hooks in their Component::render method.

#[derive(PartialEq)]
struct ReusableCounter {
    pub init_number: u8,
}

impl Component for ReusableCounter {
    fn render(&self) -> impl IntoElement {
        let mut number = use_state(|| self.init_number);
        label()
            .on_press(move |_| {
                *number.write() += 1;
            })
            .text(number.read().to_string())
    }
}

Required Methods§

Source

fn render(&self) -> impl IntoElement

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§