如何更好地理解如何阅读 Flutter 代码? [关闭]

Posted

技术标签:

【中文标题】如何更好地理解如何阅读 Flutter 代码? [关闭]【英文标题】:How do I get a better understanding on how to read Flutter code? [closed] 【发布时间】:2021-10-16 18:09:08 【问题描述】:

问题是我对程序的工作流程感到困惑,然后是我们导航到的页面以及我们从我们创建的不同文件中导入的小部件。如何更好地理解所有这些以及概念?

【问题讨论】:

【参考方案1】:

我能做的最好的帮助就是分享我的路径,这样你就可以从某个地方开始。警告:前面的意见,而不是实际数据或最佳实践(我不像这里的专家)。

如果您想学习 Flutter,首先要做的事情是:使用 Udemy 之类的平台,花费 10 美元即可获得完整的精心制作的课程。我用this course 迈出了第一步,老实说,这对初学者和初学者来说是最好的。

    务必将您的应用程序组织成越来越小的小部件,以便您真正遵循某种逻辑。忽略使用返回 Widget 的函数进行构建(这也是效率问题!); 将 UI 构建与业务逻辑和/或服务请求(例如 http)分开,即区分模型、状态、ui 和逻辑。

这是我最近从事的一个项目的示例(即,这不是经验法则,而是对我有用的东西):

1。项目组织

+/lib  [the whole project]
|
+--/models
|  |
|  +[heres a bunch of .dart files, each representing a data model, i.e. classes]
|
+--/providers
|  |
|  + [State management. I choose Riverpod, so I use providers.]
|  + [Therefore, here you find logic and state management .dart files]
|
+--/widgets
|  |
|  + [Widgets that are REUSED across the WHOLE APPLICATION]
|  + [It doesnt happen very often, so there arent many .dart files here]
|  + [Note. It is not WIDGET<=>NEW FILE. It is: ""big"" widget <=> NEW FILE]
|  + [Note 2. I rather create private widgets within the same file to keep things organized]
|
+--/screens
|  |
|  + [In here, there are as much subfolders as screens to be rendered]
|  + [In my mind, a screen not necessarly translates in a Scaffold]
|  |
|  +--/screen1/... [list of .dart files - widgets for this screen]
|  +--/screen2/...
|  +--/screen_with_multiple_tabs_and_bottom_bar/
|     |
|     +mainScaffold.dart
|     +/tab1/... [list of .dart files - widget for this tab]
|     +/tab2/...

同样,这只是一个随机示例。我喜欢以某种可以轻松跟踪路由的方式“组织”我的项目,同时分离小部件、逻辑、模型和实用程序。我相信上述模式是不言自明的。如果没有,请告诉我。

2。状态管理

当谈到状态管理时,我对这个框架有很多困惑。目前,谷歌很容易听取社区的意见,为公众带来最好的状态管理解决方案:目前市场上的解决方案之间没有明确的“赢家”。

如果您在选择状态管理包时感到“困惑”,我强烈建议您首先使用 Provider 包,它是由 Flutter 社区中一位忠诚的人努力完成的。这个包是所谓的InheritedWidget 的包装器,所以它非常 Flutterish,我完全建议检查一下。 Even Google dropped their own state management solution and adopted this one (2019),即使他们仍在寻求改进。

如果您使用其他不浮夸的解决方案,例如injection,或hooks,或GetIt(或其他...),没有人会讨厌您,但我(个人!)认为框架是为你工作,而不是反之亦然,所以为什么要逆流而上:)

我个人使用Riverpod,这是对Provider的改进,由同一个人制作。但如果您是 Flutter 新手,请先学习 Provider

我听说BLOC 是一个强大且可用于生产的解决方案。但这是很难的事情。很容易让人不知所措,只需从基础知识(提供者)开始,然后了解更多并选择。

我希望这能回答一点。

【讨论】:

非常感谢,我也已经报名了这个课程!!当我尝试阅读代码时,我发现有点不知所措。我再次开始观看课程视频,以了解我在那里获得的第一名。

以上是关于如何更好地理解如何阅读 Flutter 代码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

更快地编写更好的代码:5 分钟阅读

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

在 Flutter 中将音频文件与视频文件合并

科技大数据:如何利用科普信息来更好地理解技术

如何更好地理解希尔排序算法

如何阅读修改别人的代码?