不是每一个Widget都会生成一个RenderObject

写代码不需要知道底层

而面试需要底层所有原理

都是一样写出能用的代码

也就是远来的和尚会念经啊

一、不会创建 RenderObjectElement(ComponentWidget)

这些 Widget 只负责组合、状态管理或逻辑控制,会创建 StatelessElement 或 StatefulElement。

Widget Element
StatelessWidget StatelessElement
StatefulWidget StatefulElement
MaterialApp StatelessElement
Scaffold StatefulElement
Builder StatelessElement
FutureBuilder StatefulElement
StreamBuilder StatefulElement
AnimatedBuilder StatefulElement
GestureDetector StatefulElement
Navigator StatefulElement

也就是它们不会在RenderObject树上。

二、会创建 RenderObjectElement(RenderObjectWidget)

Widget Element RenderObject
Text LeafRenderObjectElement RenderParagraph
RichText LeafRenderObjectElement RenderParagraph
Image LeafRenderObjectElement RenderImage
EditableText LeafRenderObjectElement RenderEditable
Container SingleChildRenderObjectElement RenderDecoratedBox(有装饰时)
Padding SingleChildRenderObjectElement RenderPadding
Center SingleChildRenderObjectElement RenderPositionedBox
Align SingleChildRenderObjectElement RenderPositionedBox
SizedBox SingleChildRenderObjectElement RenderConstrainedBox
DecoratedBox SingleChildRenderObjectElement RenderDecoratedBox
ConstrainedBox SingleChildRenderObjectElement RenderConstrainedBox
Opacity SingleChildRenderObjectElement RenderOpacity
Transform SingleChildRenderObjectElement RenderTransform
ClipRRect SingleChildRenderObjectElement RenderClipRRect
Row MultiChildRenderObjectElement RenderFlex
Column MultiChildRenderObjectElement RenderFlex
Flex MultiChildRenderObjectElement RenderFlex
Stack MultiChildRenderObjectElement RenderStack
Wrap MultiChildRenderObjectElement RenderWrap
ListBody MultiChildRenderObjectElement RenderListBody

它们会在RenderObject树上

嘚不嘚

Widget即配置,并不会对应着一模一样的RenderObject。 少了很多绘制,也是优化了绘制,提高性能。在写Widget的时候,能少用会生成RenderObjectElement的widget,也就是优化代码了。性能提升一点是一点。

DONE

相关推荐
好的佩奇7 小时前
Dart 之增强枚举
android·flutter·dart
好的佩奇10 小时前
蓝牙之无线电与通信距离
android·flutter·蓝牙
程序员老刘·2 天前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·跨平台开发
传奇开心果编程2 天前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
程序员老刘2 天前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·客户端
恋猫de小郭3 天前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter
好的佩奇3 天前
Dart 之类修饰符
android·flutter·dart
好的佩奇014 天前
Dart 之类修饰符
android·flutter·dart
Jewel1054 天前
文字为什么总是不居中!记录一个bug
android·flutter·ios
2601_949847754 天前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter