我刚刚读到构建方法中的"const"小部件分配,所以在这个场景中,小部件在应用程序启动时分配,它们是如何存储的,在哪里?。他们会增加应用程序的大小吗?
编译后的Flutter小部件是如何存储的以及存储在哪里
Flutter应用程序是AOT编译(提前(到本机平台代码。每个Flutter小部件都被编译为本地小部件,并被渲染到Skia画布上,该画布显示给最终用户平台。平台会发回编译后的Flutter代码所处理的所有事件。
我强烈建议查看这些文章:
- https://github.com/flutter/flutter/wiki/The-Engine-architecture
- https://medium.com/47billion/flutter-how-does-it-works-6e4c73842e67
何时在Flutter中使用const
小部件
尽可能在StatefullWidget
中使用const
小部件
为什么?只需记住,调用StatefullWidget
setState
将重建整个小部件。通过为StatefullWidget
的子窗口小部件指定const
,您可以说它们不需要在setState
调用中重建。
这是官方文件的链接:
- https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html#performance-注意事项
关于他们是否增加应用程序大小:
我相信Dart 2.0使const
成为可选的,也就是说,在给定正确的上下文的情况下,编译器会自己将其标记为const
。以下是一些指向这一点的资源:
"不要重复使用常量"-有效的飞镖使用
"Dart 2引入可选的新和const"-宣布推出Dart 2.0
因此,如果编译器自动执行此操作,我认为可以放心地假设不会对应用程序/大小的性能造成影响。我希望这能回答你的问题。