Trait Component

Source
pub trait Component {
    type Props;

    // Required method
    fn render(&mut self, props: Self::Props) -> Node;
}
Expand description

A trait for creating reusable components.

Components are the heart of RSX’s reusability model. They allow you to create custom elements with their own logic and state.

§Example

use simple_rsx::*;

struct Card;
#[derive(Default)]
struct CardProps {
    title: String,
    children: Vec<Node>,
}

impl Component for Card {
    type Props = CardProps;
    fn render(&mut self, props: Self::Props) -> Node {
        rsx!(
            <div class="card">
                <h2>{props.title}</h2>
                <div class="card-content">{props.children}</div>
            </div>
        )
    }
}

Required Associated Types§

Source

type Props

The type of props this component accepts

Required Methods§

Source

fn render(&mut self, props: Self::Props) -> Node

Renders the component with the given props

Implementations on Foreign Types§

Source§

impl<P> Component for fn(P) -> Node

Implements Component for functions that take props and return a Node.

This allows you to use simple functions as components.

§Example

use simple_rsx::*;

fn Button(text: String) -> Node {
    rsx!(<button>{text}</button>)
}
Source§

type Props = P

Source§

fn render(&mut self, props: Self::Props) -> Node

Implementors§

Source§

impl Component for a

Source§

impl Component for audio

Source§

impl Component for body

Source§

impl Component for br

Source§

impl Component for button

Source§

impl Component for canvas

Source§

impl Component for circle

Source§

impl Component for defs

Source§

impl Component for div

Source§

impl Component for ellipse

Source§

impl Component for foreignObject

Source§

impl Component for form

Source§

impl Component for g

Source§

impl Component for h1

Source§

impl Component for h2

Source§

impl Component for h3

Source§

impl Component for h4

Source§

impl Component for h5

Source§

impl Component for h6

Source§

impl Component for head

Source§

impl Component for hr

Source§

impl Component for html

Source§

impl Component for iframe

Source§

impl Component for img

Source§

impl Component for input

Source§

impl Component for label

Source§

impl Component for li

Source§

impl Component for line

Source§

impl Component for linearGradient

Source§

impl Component for mask

Source§

impl Component for meta

Source§

impl Component for ol

Source§

impl Component for option

Source§

impl Component for p

Source§

impl Component for path

Source§

impl Component for polygon

Source§

impl Component for polyline

Source§

impl Component for radialGradient

Source§

impl Component for rect

Source§

impl Component for script

Source§

impl Component for select

Source§

impl Component for source

Source§

impl Component for span

Source§

impl Component for stop

Source§

impl Component for style

Source§

impl Component for svg

Source§

impl Component for table

Source§

impl Component for tbody

Source§

impl Component for td

Source§

impl Component for textarea

Source§

impl Component for tfoot

Source§

impl Component for th

Source§

impl Component for thead

Source§

impl Component for title

Source§

impl Component for tr

Source§

impl Component for ul

Source§

impl Component for use

Source§

impl Component for video