Kernel 细节(render / runtime / state)
Render phase 与 layer
UiRenderPhase 顺序:
BEHINDBACKGROUNDFRAMEELEMENTSPLITWIDGETTOOLTIPOVERLAY
UiRenderLayer = (phase, order)。
UiRenderTaskQueue 按 phase -> order -> serial 排序执行。
Runtime 与响应式状态
UiRuntime.frameTick():scheduler.drain()stateKernel.flush()
StateKernel:- 可变信号:
mutableSignal - 计算信号:
computedSignal - 副作用:
effect - 批处理:
batch
- 可变信号:
示例:
UiRuntime runtime = UiRuntime.createForCurrentThread();
var state = runtime.state();
var count = state.mutableSignal(0);
var text = state.computedSignal(() -> "Count = " + count.get());
state.effect(() -> System.out.println(text.get()));
state.batch(() -> {
count.set(1);
count.set(2);
});
runtime.frameTick();Last updated on