使用 BlocBuilder 的首选方法是什么 - 如果我想在由其他小部件分隔的列中重建两个小部件?

What is the preferred way to use BlocBuilder - if I want to rebuild two widgets in a column separated by other widgets?

我是 Flutter Bloc 概念的新手,我想知道如果我在一列中有两个或三个应该在状态更改时重建的小部件,并且它们之间有 3 个或4 个不变的小部件。

共有三个选项: 1- 创建 two/three 块构建器(围绕不断变化的小部件),以免无缘无故地重建不变的小部件。

2- 在列周围创建一个 bloc 构建器,即使它也会重建静态不变的小部件。但会节省备用的集团建设者。

3- 将列中的内部更改项目包装在一个较小的列中,我们将用一个 bloc 生成器包装它(缺点 - 小部件树可能会因许多嵌套列而变得不那么优雅)

我试图找到关于它的讨论,但找不到首选方法

提前致谢

这真的取决于:

  • 如果您的 Column 重建工作很繁重,因为您的构建方法中有一些讨厌的计算,或者那些没有改变的小部件非常大和复杂,那么您应该单独重建变化的小部件;
  • 如果您的 Column 重量轻且子级简单,那么您可能更愿意让代码易于阅读并同时重建。

我会考虑第二种选择,即使您不断变化的小部件需要始终一起重建,因为它们遵循相同的逻辑。 只有在 UX 中产生问题时才应遵循性能,否则您应该始终以简洁易读的代码为目标。

在这里你可以找到一些关于 flutter 的性能指南:link

在此视频中,Flutter 开发人员提供了一些有用的提示:link