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§
Source§impl Component for Accordion
impl Component for Accordion
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Button
impl Component for Button
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Calendar
impl Component for Calendar
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Card
impl Component for Card
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Checkbox
impl Component for Checkbox
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Chip
impl Component for Chip
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for ColorPicker
impl Component for ColorPicker
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for CursorArea
impl Component for CursorArea
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Draggable
impl Component for Draggable
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for DraggableCanvas
impl Component for DraggableCanvas
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for FloatingTab
impl Component for FloatingTab
fn render(&self) -> impl IntoElement
Source§impl Component for GifViewer
impl Component for GifViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for ImageViewer
impl Component for ImageViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Input
impl Component for Input
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Link
impl Component for Link
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for CircularLoader
impl Component for CircularLoader
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for MarkdownViewer
impl Component for MarkdownViewer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for NativeRouter
impl Component for NativeRouter
fn render(&self) -> impl IntoElement
Source§impl Component for OverflowedContent
impl Component for OverflowedContent
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Popup
impl Component for Popup
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for PopupBackground
impl Component for PopupBackground
fn render(&self) -> impl IntoElement
Source§impl Component for PopupButtons
impl Component for PopupButtons
fn render(&self) -> impl IntoElement
Source§impl Component for PopupContent
impl Component for PopupContent
fn render(&self) -> impl IntoElement
Source§impl Component for PopupTitle
impl Component for PopupTitle
fn render(&self) -> impl IntoElement
Source§impl Component for ProgressBar
impl Component for ProgressBar
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for RadioItem
impl Component for RadioItem
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for ResizableContainer
impl Component for ResizableContainer
fn render(&self) -> impl IntoElement
Source§impl Component for ResizableHandle
impl Component for ResizableHandle
fn render(&self) -> impl IntoElement
Source§impl Component for ResizablePanel
impl Component for ResizablePanel
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for ScrollView
impl Component for ScrollView
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for ButtonSegment
impl Component for ButtonSegment
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for SegmentedButton
impl Component for SegmentedButton
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Select
impl Component for Select
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for SelectableText
impl Component for SelectableText
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for SideBarItem
impl Component for SideBarItem
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Slider
impl Component for Slider
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Switch
impl Component for Switch
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Table
impl Component for Table
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TableArrow
impl Component for TableArrow
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TableBody
impl Component for TableBody
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TableCell
impl Component for TableCell
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TableHead
impl Component for TableHead
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TableRow
impl Component for TableRow
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Tile
impl Component for Tile
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TitlebarButton
impl Component for TitlebarButton
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for Tooltip
impl Component for Tooltip
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§impl Component for TooltipContainer
impl Component for TooltipContainer
fn render(&self) -> impl IntoElement
fn render_key(&self) -> DiffKey
Source§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
Source§impl<R> Component for AnimatedRouter<R>
Provide a mechanism for freya_router::prelude::outlet to animate between route changes.
impl<R> Component for AnimatedRouter<R>
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.