GLORY 指南
从基本原理学习 Glory。
Glory 是围绕手写 Rust 构建器、有所有权的细粒度响应式和可替换渲染宿主设计的语义化 UI 框架。本指南不仅介绍如何编写代码,也解释各部分如何协作。
开始之前
本指南假设你已掌握 Rust 基础。Glory 当前的语义架构正在积极开发中,请参考已迁移的示例和实现记录,不要使用旧 HTML 架构时期的教程。
选择学习路线
安装框架
Glory 需要 Rust 1.94 或更新版本。添加 facade,并仅选择应用使用的宿主。web 特性包含 HTML 映射,hydrate 增加浏览器水合支持。
Cargo.toml
1
2
3
4
5
[dependencies]
glory = { version = "0.3.1", features = ["web"] }
# Add hosts only when your application needs them:
# features = ["web", "ssr", "hydrate"]创建第一个组件
组件就是普通 Rust 值。构建器描述语义节点,挂载负责将其连接到宿主。这个共享函数不需要模板语言,也不包含浏览器 DOM。
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use glory::prelude::*;
fn hello() -> impl Widget {
col().fill((
text()
.kind(TextKind::Heading(1))
.content("Hello, Glory"),
text().content("Semantic UI, handwritten in Rust."),
))
}
// In a wasm32 browser host:
let app = glory::web::launch(root, hello())?;
// Keep the returned WebApp alive.接下来会发生什么?
浏览器宿主从语义树创建真实 DOM。修改 Cage 只会运行受影响的派生计算与绑定,并发出类型化字段补丁。SSR 和原生宿主通过不同适配器处理相同语义操作。
声明
通过手写构建器组合视图、文本、控件和自己的 Widget 值。
响应
在 Cage 句柄中存储可变数据源,通过 Bond 计算派生被追踪的值。
渲染
让 Web、SSR 或 Blitz 解释相同的语义创建与补丁操作。