GLORY 指南

从基本原理学习 Glory。

Glory 是围绕手写 Rust 构建器、有所有权的细粒度响应式和可替换渲染宿主设计的语义化 UI 框架。本指南不仅介绍如何编写代码,也解释各部分如何协作。

开始之前

本指南假设你已掌握 Rust 基础。Glory 当前的语义架构正在积极开发中,请参考已迁移的示例和实现记录,不要使用旧 HTML 架构时期的教程。

选择学习路线

1. 理解模型

了解 Glory 为何采用保留式语义树、显式响应式所有权和类型化更新。

架构与设计 →

2. 构建界面

使用内置元素,派生响应式值,并用纯 Rust 实现自己的 Widget trait。

编写自定义组件 →

3. 选择宿主

在浏览器中启动,生成 SSR 快照,或将相同组件挂载到原生 Blitz 窗口中。

探索平台 →

安装框架

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 解释相同的语义创建与补丁操作。