【问题标题】:How many Stateless Widget Classes should a Flutter Developer put in one file?Flutter 开发人员应该在一个文件中放入多少个 Stateless Widget Class?
【发布时间】:2020-03-23 01:49:46
【问题描述】:

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

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

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

不幸的是,我在 Dart 和 Flutter Repo 风格指南中或互联网上都找不到任何东西。

我感谢每一个建议。

【问题讨论】:

    标签: file class flutter dart class-structure


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      您的问题是一个文件中有多少个小部件?

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

      • 尝试使文件单一负责,即(5-6 个类一起负责单一功能)。以后有不相干的事情不要一起做神级会很痛苦(哈哈)

      • 如果是通用小部件,请将它们分开以尊重 DRY 原则(不要重复自己)

      • 如果小部件被进一步划分为 3-4 个小部件,或者它的子小部件的变化取决于休息响应,请保持分开以备不时之需

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2014-11-25
        • 1970-01-01
        相关资源
        最近更新 更多