是否有关于在哪里创建更优化的小部件的一般经验法则(假设小部件不依赖于传递到 build() 中的任何内容)?
如果我们在类中创建一个 Widget:
Foo({Key key}) : super(key: key);
Widget _widget = new Container(); // Create here?
我们只在创建类时创建一次。但是,如果这个小部件并不总是在 build() 中使用(例如,后台小部件,或者小部件的可见性由标志确定),则它可能会占用空间。
如果我们在 build() 中创建小部件:
@override
Widget build(BuildContext context) {
Widget widget = new Container(); // Or create here?
return widget;
}
在每次调用 build() 时都会重新创建小部件,这感觉代价高昂,尤其是在小部件没有更改的情况下。
最佳答案
在 Flutter/Dart 中构造短期对象通常非常便宜,并且 widgets 层负责确保渲染树不会在重建时被修改,除非 widget 发生变化。所以缓存小部件在正常情况下没有多大帮助。我倾向于在您的 build()
方法中构建小部件,除非有原因导致它不起作用。
关于performance - Flutter widget 应该在类中创建还是在 build() 函数中创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45704251/