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

写代码不需要知道底层

而面试需要底层所有原理

都是一样写出能用的代码

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

一、不会创建 RenderObjectElement(ComponentWidget)

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

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

相关推荐
世人万千丶9 小时前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙
GitLqr10 小时前
Flutter 无障碍开发实战:玩转 Semantics 解决视障用户使用痛点
android·flutter·dart
世人万千丶17 小时前
鸿蒙Flutter Flexible与Expanded的区别
学习·flutter·harmonyos·鸿蒙
YM52e17 小时前
鸿蒙Flutter Center居中组件:Align对齐详解
android·学习·flutter·华为·harmonyos·鸿蒙
马里马里奥-20 小时前
LLM-Switch 代理:Flutter 适配与踩坑记录
flutter
浮江雾20 小时前
Flutter第十节-----Flutter布局与组件全解析
android·开发语言·前端·学习·flutter·入门
浮江雾20 小时前
Flutter第12节-----Flutter中Dio插件网络请求全解析
flutter
末代iOS程序员华仔21 小时前
Cursor + GitOps:自动化运维新姿势
flutter·ios·swift
世人万千丶1 天前
鸿蒙Flutter Flex嵌套布局技巧
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统