状态的对称之美:Flutter 早该有 context.value 与 context.state
来源:dev.to — 2026-09-11
📋 概述
文章认为 Flutter 开发者六年来一直在两种读状态的方式之间二选一:BlocBuilder 层层嵌套造成的「Builder 金字塔」缩进税,或者 context.watch、context.select 这类扩展带来的整树重建陷阱和大量闭包样板。一个概念上只是读两个状态值的组件,会变成两层 widget 缩进、两个匿名 builder 闭包和两级上下文遮蔽。作者提出的解法是在状态容器与 widget 树之间建立一比一的架构对称:引入 context.value、context.state 以及无闭包的 provider tearoff,由 BlocSignal 消掉这层仪式代码,让响应式代码既更干净也更快。
🔑 核心要点
- 老写法里读两个状态值就要叠两层 BlocBuilder 与两级上下文遮蔽。
- 社区转向 context.watch 与 context.select 后,又引入了整树重建的隐式陷阱。
- 主张容器与 BuildContext 之间做到一比一对称,用 context.value 与 context.state 直接读。
- 目标是消除「widget builder 税」与闭包疲劳。
💡 金句
Why Flutter state consumption should have always worked this way.
👍 0
👎 0
← 返回 dev.to 首页