Const变量和实例存储



我刚刚读到构建方法中的"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小部件

为什么?只需记住,调用StatefullWidgetsetState将重建整个小部件。通过为StatefullWidget的子窗口小部件指定const,您可以说它们不需要在setState调用中重建。

这是官方文件的链接:

  • https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html#performance-注意事项

关于他们是否增加应用程序大小:

我相信Dart 2.0使const成为可选的,也就是说,在给定正确的上下文的情况下,编译器会自己将其标记为const。以下是一些指向这一点的资源:

"不要重复使用常量"-有效的飞镖使用

"Dart 2引入可选的新和const"-宣布推出Dart 2.0

因此,如果编译器自动执行此操作,我认为可以放心地假设不会对应用程序/大小的性能造成影响。我希望这能回答你的问题。

最新更新