Component

Trait Component 

pub trait Component: ComponentKey + '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§

fn render(&self) -> impl IntoElement

Provided Methods§

fn render_key(&self) -> DiffKey

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Component for Accordion

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ArrowIcon

§

fn render(&self) -> impl IntoElement

§

impl Component for Button

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ButtonSegment

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Calendar

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Card

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Checkbox

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Chip

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for CircularLoader

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ColorPicker

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for CursorArea

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Draggable

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for DraggableCanvas

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for FloatingTab

§

fn render(&self) -> impl IntoElement

§

impl Component for GifViewer

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ImageViewer

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Input

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for MarkdownViewer

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for NativeRouter

§

fn render(&self) -> impl IntoElement

§

impl Component for OverflowedContent

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Popup

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for PopupBackground

§

fn render(&self) -> impl IntoElement

§

impl Component for PopupButtons

§

fn render(&self) -> impl IntoElement

§

impl Component for PopupContent

§

fn render(&self) -> impl IntoElement

§

impl Component for PopupTitle

§

fn render(&self) -> impl IntoElement

§

impl Component for ProgressBar

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for RadioItem

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ResizableContainer

§

fn render(&self) -> impl IntoElement

§

impl Component for ResizableHandle

§

fn render(&self) -> impl IntoElement

§

impl Component for ResizablePanel

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for ScrollView

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for SegmentedButton

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Select

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for SelectableText

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for SideBar

§

fn render(&self) -> impl IntoElement

§

impl Component for SideBarItem

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Slider

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Switch

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Table

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TableArrow

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TableBody

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TableCell

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TableHead

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TableRow

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TickIcon

§

fn render(&self) -> impl IntoElement

§

impl Component for Tile

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TitlebarButton

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for Tooltip

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl Component for TooltipContainer

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl<D, B> Component for VirtualScrollView<D, B>
where D: 'static, B: Fn(usize, &D) -> Element + 'static,

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl<R> Component for AnimatedRouter<R>
where R: Routable + 'static + PartialEq,

Provide a mechanism for [freya_router::prelude::outlet] to animate between route changes.

See the animated_router.rs example to see how to use it.

§

fn render(&self) -> impl IntoElement

§

impl<R> Component for Outlet<R>
where R: Routable,

§

fn render(&self) -> impl IntoElement

§

impl<R> Component for Router<R>
where R: Routable + Clone,

§

fn render(&self) -> impl IntoElement

§

impl<T> Component for ActivableRoute<T>
where T: PartialEq + Clone + 'static + Routable,

§

fn render(&self) -> impl IntoElement

§

impl<T> Component for DragZone<T>
where T: Clone + PartialEq,

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl<T> Component for DropZone<T>
where T: Clone + PartialEq + 'static,

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

§

impl<T> Component for Portal<T>
where T: PartialEq + 'static + Clone + Hash + Eq + Debug,

§

fn render(&self) -> impl IntoElement

§

fn render_key(&self) -> DiffKey

Implementors§

§

impl Component for AppComponent

§

impl<T> Component for T
where T: ComponentOwned + Clone,