不交异步税的生成式 UI:bloc_signals_genui 1.0
来源:dev.to — 2026-10-20
📋 概述
多数生成式 UI 原型止步于「LLM 通过 SSE 流下一段 JSON,一棵控件树出现,大家鼓掌」,五秒后用户一交互就露馅:因为响应来自异步网络流,整个客户端生命周期被接在 StreamBuilder 和 async 生成器上,每一次按键、每一条跨字段校验、每一个 widget 测试都要付微任务和帧延迟的税。这个纯 Dart 包把异步流隔离在架构边缘,进入客户端之后,双向表单绑定、同步校验和列表模板在同一帧内以 0ms 执行,核心零 Flutter 依赖,可对接 Riverpod、flutter_bloc,也能驱动终端 TUI。
🔑 核心要点
- 严格遵循 Google 官方 A2UI 协议(a2ui_core ^0.3.0,覆盖规范 v0.9.1 与 v1.0)。
- 异步只留在边界:一旦 UI 落到客户端,每一次按键与叶子重建都是同步信号图上的 0ms 操作。
- 同一套 A2uiSurfaceBloc 状态机既能跑 120FPS 的 Material 3 应用,也能跑 ANSI 终端界面。
- 不强迫团队换掉已有的 Riverpod / bloc 范式,这是多数 GenUI 库的第二个隐形成本。
💡 金句
“An asynchronous network stream belongs at the perimeter of your architecture.”
译:异步网络流只该待在架构的边缘。
← 返回 dev.to 首页