组件
就像你不会想在一个单一的、长的main函数中编写一个复杂的程序一样,你不应该在单个App函数中构建一个复杂的UI。相反,你应该将应用程序的功能分解成称为组件的逻辑部分。
组件是一个Rust函数,以大驼峰命名(UpperCammelCase),它要么不接受参数,要么接受一个属性结构体,并返回一个描述它想要渲染的UI的Element。
// 定义一个渲染包含文本 "Hello, world!" 的div的组件
fn App() -> Element {
rsx! { div { "Hello, world!" } }
}
你可能需要在你的crate的顶部添加
#![allow(non_snake_case)]来避免关于大驼峰组件名称的警告。
一个组件负责一些渲染任务——通常是渲染用户界面的一个独立部分。例如,你可以有一个About组件,它渲染Dioxus Labs的简短描述:
pub fn About() -> Element {
rsx! {
p {
b { "Dioxus Labs" }
" An Open Source project dedicated to making Rust UI wonderful."
}
}
}
Dioxus Labs 是一个致力于使Rust UI变得精彩的开源项目。
然后,你可以在另一个组件中渲染你的组件,类似于元素的渲染方式:
pub fn App() -> Element {
rsx! {
About {}
About {}
}
}
Dioxus Labs 是一个致力于使Rust UI变得精彩的开源项目。
Dioxus Labs 是一个致力于使Rust UI变得精彩的开源项目。
此时,组件可能看起来只是函数。然而,随着你对Dioxus特性的进一步了解,你会发现它们实际上更强大!