Bricks Planet
返回砖块库

Brick Card

Widget

可以先理解为:声明式界面中描述UI意图并交给框架渲染的组件单元

Widget 是声明式 UI 里的界面描述单元。它像一张“我想要什么界面”的说明书,框架再根据这张说明书去创建、更新或复用真实渲染对象。

关键结构图

这一层
打开
下一层
继续
停下

三层盒子从上到下排列:Widget 描述意图,Element 持有位置和生命周期,RenderObject 负责布局和绘制。

What

Widget 不是屏幕上最终的像素,也不一定是持久存在的对象。它更像声明式 UI 中的配置和结构描述:开发者描述界面应该长什么样、由哪些部分组成、状态如何影响外观,框架再把这些描述转成元素树和渲染树。

When

当你读 Flutter、SwiftUI 或其他声明式 UI 架构时,可以先用 Widget 这块砖区分描述、状态和渲染三层。

How

先问这段代码是在描述界面,还是在持有状态,还是在做实际绘制。把这三层分清,很多 UI 更新和性能问题会更容易定位。

Examples

Flutter 里一个 Text widget 本身不是屏幕上的文字像素,它描述了要显示文字,后面还要经过 Element 和 RenderObject。

做产品原型时,把复杂界面拆成 Widget,可以先稳定结构和状态流,再讨论视觉细节。

来源

类型:技术文档 / 概念整理

事实线:这张卡把「Widget」整理为可公开复用的Concept: Widget 不是屏幕上最终的像素,也不一定是持久存在的对象。

依据:来自每日 AI 工程观察中围绕 Flutter 架构、声明式 UI 和 Widget / Element / RenderObject 分工的材料提炼。

边界:适用于理解 Flutter 和声明式 UI 的组件结构;不同框架里的 widget/component/view 名称和生命周期并不完全相同。

常见误读:不要把 Widget 当成最终绘制对象。它更像界面意图的描述,真正渲染还需要框架内部结构接力。