Components
A Component consist of a single function that receives props and determines what should be rendered by returning a VNode
.
Without hooks
a component is quite limiting because can only be a pure component.
Hooks
allow components to maintain their own internal state and use other reView features.
Creating a Components
A component can be created using the #[component]
attribute on top of a function.
#[component(ExampleComponent)]
pub fn example_component() -> VNode {
Div.into()
}
Under the hood
A functional component is a struct that implements the ComponentProvider
trait. This trait has two methods, the render
method and the get_props
method.
The first one is used to retrieve the VNode
produced by the component and the second one il used to get a reference to the props that should be send to the render
method.
The component
attribute will automatically create a struct that implement the ComponentProvider
using the specified function.
Also checks that the fuction respect the hook rules.