Dioxus框架中组件(Components)

384 阅读1分钟

组件

就像你不会想在一个单一的、长的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特性的进一步了解,你会发现它们实际上更强大!

img