4

我目前正在开发一个颤振应用程序。我有一个带有大部件树的文件。为了更容易理解、阅读和维护,我想“裁剪”小部件树。

首先,我所做的是创建多个函数,它们代表了树的更大部分,例如_createFancyImage()or _createFancyContainer。经过一番研究,我发现这样的设计有一些缺点(见:https ://github.com/flutter/flutter/issues/19269 )。因此,我决定改为创建StatelessWidgets 。由于小部件树的巨大尺寸,我将其分解为 3 个逻辑StatelessWidgets。现在我可以使用FancyImage()or FancyContainer()which 代表每个独立的小部件。

作为初学者,我不确定是否应该将这些StatelessWidget类保存在同一个文件中。或者,我可以创建独立文件。需要澄清的一件事:我没有在其他地方使用那些花哨的小部件。这些是这一大部件树所独有的,否则我可以将它们外包到一个新文件夹中,例如“common_widgets”或“components”。

不幸的是,我在 Dart 和 Flutter Repo 样式指南或互联网上都找不到东西。

我感谢每一个建议。

4

2 回答 2

2

您可以在单个文件中添加任意数量的类。这取决于开发者的心态。

但是,假设您的一个类可以被其他类或包重用,那么您应该将它添加到另一个文件以更好地分离。

我可以支持您的一种方法是,您的每个文件最多应该有一个有状态的小部件,并且对于相应的小部件,您需要尽可能多的无状态小部件,这将是一个更好的方案。

仍然在某些情况下,如果您觉得在单个文件中添加了足够多的无状态小部件,您应该根据您的选择将其分隔到另一个文件中。

于 2019-11-27T13:35:59.513 回答
0

我更喜欢保留一个与文件名同名的公共小部件和剩余的私有小部件。

来到您的问题是单个文件中有多少个小部件?

它实际上取决于没有这样的规则来限制文件的限制。不同的作者有不同的偏好。我更喜欢尝试保留 5-6 个类(小部件),每个类有 5-6 个功能。

  • 尝试使文件单一负责,即(5-6 个类一起负责单一功能)。以后不要把有无关问题的神级放在一起会很痛苦(哈哈)

  • 如果它是一个常见的小部件,请将它们分开以尊重 DRY 原则(不要重复自己)

  • 如果小部件进一步分为 3-4 个小部件,或者它的子小部件更改取决于休息响应,请保持单独的良好做法

  • 额外提示:尝试使用代码折叠快捷方式来推动更多

于 2021-02-07T18:04:06.250 回答