Component

Trait Component 

Source
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§

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", so this trait is not object safe.

Implementors§

Source§

impl Component for Accordion

Source§

impl Component for ArrowIcon

Source§

impl Component for Button

Source§

impl Component for ButtonSegment

Source§

impl Component for Calendar

Source§

impl Component for Checkbox

Source§

impl Component for Chip

Source§

impl Component for CircularLoader

Source§

impl Component for ColorPicker

Source§

impl Component for CursorArea

Source§

impl Component for Draggable

Source§

impl Component for DraggableCanvas

Source§

impl Component for FloatingTab

Source§

impl Component for GifViewer

Source§

impl Component for ImageViewer

Source§

impl Component for Input

Source§

impl Component for MarkdownViewer

Source§

impl Component for NativeRouter

Source§

impl Component for OverflowedContent

Source§

impl Component for Popup

Source§

impl Component for PopupBackground

Source§

impl Component for PopupButtons

Source§

impl Component for PopupContent

Source§

impl Component for PopupTitle

Source§

impl Component for ProgressBar

Source§

impl Component for RadioItem

Source§

impl Component for ResizableContainer

Source§

impl Component for ResizableHandle

Source§

impl Component for ResizablePanel

Source§

impl Component for ScrollView

Source§

impl Component for SegmentedButton

Source§

impl Component for Select

Source§

impl Component for SelectableText

Source§

impl Component for SideBar

Source§

impl Component for SideBarItem

Source§

impl Component for Slider

Source§

impl Component for Switch

Source§

impl Component for Table

Source§

impl Component for TableArrow

Source§

impl Component for TableBody

Source§

impl Component for TableCell

Source§

impl Component for TableHead

Source§

impl Component for TableRow

Source§

impl Component for TickIcon

Source§

impl Component for Tile

Source§

impl Component for Tooltip

Source§

impl Component for TooltipContainer

§

impl Component for Ripple

§

impl Component for RippleButton

Source§

impl Component for AppComponent

Source§

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

Source§

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.

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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