Skip to main content
Version: Next

純組件

每個函數元件都是一個函數,它接受一個屬性物件並傳回一個Html 物件。純函數是指在給定相同輸入時,總是會傳回相同輸出的函數。

這個例子是一個純組件。對於給定的屬性 is_loading,它總是傳回相同的 Html,沒有任何副作用。

use yew::{Properties, function_component, Html, html};

#[derive(Properties, PartialEq)]
pub struct Props {
pub is_loading: bool,
}

#[function_component]
fn HelloWorld(props: &Props) -> Html {
if props.is_loading {
html! { "Loading" }
} else {
html! { "Hello world" }
}
}
備註

如果您有一個內部純元件,它不使用 hooks 和其他元件機制,您通常可以將其編寫為傳回 Html 的普通函數,從而避免 Yew 運行元件生命週期相關的一些開銷。使用 表達式語法html! 中渲染它們。

非純組件

您可能想知道,如果元件不使用任何全域變量,那麼它是否可以是不“純”的,因為它只是在每次渲染時調用的固定函數。 這就是下一個主題 - hooks 的用武之地。