状态与更新
细粒度响应式。
Cage、Bond 和 Lotus 让数据流保持显式。值和订阅属于 Owner,其生命周期因此与组件树相连。
C
Cage
指向可变应用状态的 Copy 句柄,具有明确所有权。修改它会通知依赖计算。
B
Bond
被追踪的派生值。可选相等性检查可避免多余的下游工作。
L
Lotus
统一的值输入,让组件构建器同时接受静态和响应式内容。
清晰可见的派生计算
Bond、绑定和副作用计算中的读取会被追踪。构造组件时的普通读取不会建立订阅。
reactivity.rs
1
2
3
4
5
6
7
8
9
10
11
let count = scope.cage(1_u64);
let parity = scope
.bond(move || count.get() % 2)
.with_partial_eq();
scope.binding(move || {
println!("parity: {}", parity.get());
});
// Only affected consumers are notified.
count.revise(|value| *value += 1);试用实时组件
这个计数器通过 Glory 浏览器宿主运行。标签直接从事件处理器使用的同一个 Cage 派生。
点击次数:0
所有权是模型的一部分
释放作用域会使句柄失效并取消其工作。集合投影和索引列表无需扫描整个数据源,就能保留精确依赖。