Components
基本
Component
を実装しているあらゆる型はhtml!
マクロの中で使えます:
html!{
<>
// No properties
<MyComponent />
// With Properties
<MyComponent prop1="lorem" prop2="ipsum" />
// With the whole set of props provided at once
<MyComponent with props />
</>
}
ネスト
children
フィールドがProperties
の中にある場合はコンポーネントは子に渡されます。
parent.rs
html! {
<Container>
<h4>{ "Hi" }</h4>
<div>{ "Hello" }</div>
</Container>
}
container.rs
pub struct Container(Props);
#[derive(Properties, Clone)]
pub struct Props {
pub children: Children,
}
impl Component for Container {
type Properties = Props;
// ...
fn view(&self) -> Html {
html! {
<div id="container">
{ self.0.children.clone() }
</div>
}
}
}
note
Properties
を継承した型はClone
を実装していなければいけません。
これは#[derive(Properties, Clone)]
を使うか手でClone
を実装すれば良いです。