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
impl Component for Accordion
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ArrowIcon
impl Component for ArrowIcon
fn render(&self) -> impl IntoElement
§impl Component for Button
impl Component for Button
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ButtonSegment
impl Component for ButtonSegment
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Calendar
impl Component for Calendar
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Card
impl Component for Card
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Checkbox
impl Component for Checkbox
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Chip
impl Component for Chip
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for CircularLoader
impl Component for CircularLoader
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ColorPicker
impl Component for ColorPicker
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for CursorArea
impl Component for CursorArea
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Draggable
impl Component for Draggable
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for DraggableCanvas
impl Component for DraggableCanvas
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for FloatingTab
impl Component for FloatingTab
fn render(&self) -> impl IntoElement
§impl Component for GifViewer
impl Component for GifViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ImageViewer
impl Component for ImageViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Input
impl Component for Input
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Link
impl Component for Link
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for MarkdownViewer
impl Component for MarkdownViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for NativeRouter
impl Component for NativeRouter
fn render(&self) -> impl IntoElement
§impl Component for OverflowedContent
impl Component for OverflowedContent
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Popup
impl Component for Popup
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for PopupBackground
impl Component for PopupBackground
fn render(&self) -> impl IntoElement
§impl Component for PopupButtons
impl Component for PopupButtons
fn render(&self) -> impl IntoElement
§impl Component for PopupContent
impl Component for PopupContent
fn render(&self) -> impl IntoElement
§impl Component for PopupTitle
impl Component for PopupTitle
fn render(&self) -> impl IntoElement
§impl Component for ProgressBar
impl Component for ProgressBar
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for RadioItem
impl Component for RadioItem
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ResizableContainer
impl Component for ResizableContainer
fn render(&self) -> impl IntoElement
§impl Component for ResizableHandle
impl Component for ResizableHandle
fn render(&self) -> impl IntoElement
§impl Component for ResizablePanel
impl Component for ResizablePanel
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for ScrollView
impl Component for ScrollView
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for SegmentedButton
impl Component for SegmentedButton
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Select
impl Component for Select
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for SelectableText
impl Component for SelectableText
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for SideBar
impl Component for SideBar
fn render(&self) -> impl IntoElement
§impl Component for SideBarItem
impl Component for SideBarItem
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Slider
impl Component for Slider
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Switch
impl Component for Switch
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Table
impl Component for Table
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TableArrow
impl Component for TableArrow
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TableBody
impl Component for TableBody
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TableCell
impl Component for TableCell
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TableHead
impl Component for TableHead
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TableRow
impl Component for TableRow
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TickIcon
impl Component for TickIcon
fn render(&self) -> impl IntoElement
§impl Component for Tile
impl Component for Tile
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TitlebarButton
impl Component for TitlebarButton
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for Tooltip
impl Component for Tooltip
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl Component for TooltipContainer
impl Component for TooltipContainer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
§impl<D, B> Component for VirtualScrollView<D, B>
impl<D, B> Component for VirtualScrollView<D, B>
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.
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.