firebase Flutter良好编码规范[已关闭]

py49o6xq  于 2023-01-27  发布在  Flutter
关注(0)|答案(2)|浏览(110)
    • 已关闭**。此问题为opinion-based。当前不接受答案。
    • 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

2小时前关门了。
Improve this question
我正在开发一个flutter应用程序,在我的应用程序中,我有一个userData模型来存储用户的数据。然后我有一个个人资料页面,在那里显示几乎所有的数据。我使用Firebase来存储这些userData对象。
正如我现在所拥有的,我有一个futureBuilder(),用于每个需要用户数据的小部件,也就是说,我有一个text()小部件,用于显示用户名,在futureBuilder中,future是一个从firebase文档中检索名称字段的方法。
我想知道是否将整个页面 Package 在futureBuiler中更好,futureBuiler是一个方法,该方法一次检索userData对象而不是字段,然后在futureBuilder中构建所有小部件。

body: Stack(   
        children: [
          _profileBanner(), //futureBuilder
          _whiteBackgroundContainer(),
          _profileImage(), //futureBuilder
          _userName(), //futureBuilder
          _backArrow(),
          _profilePageButtons(),
          _reputationBuble(), //futureBuilder
          _friendsAndGamesCounter(),//futureBuilder
          _personnaInformationRow(), //futureBuilder
          _divider(),
          _biographyTile(), //futureBuilder
          _sportsList(), //futureBuilder
        ],
      )
lmyy7pcs

lmyy7pcs1#

是的,当您使用API或远程数据库时,通常需要使用使用最少HTTP调用的方法,在这种情况下,如果您可以一次获取所有用户数据,则可以这样做,并在未来的构建器中使用一个大部件“配置文件屏幕”,然后使用响应填充UI

**PS:**避免使用UI元素的函数,而是使用无状态类

hts6caw3

hts6caw32#

我同意皮埃尔。
这是一个很好的例子,说明Riverpod可以为您保存大量的布线和管理代码,从而增加价值。最终,这取决于您和您的应用。但如果您发现自己在许多地方阅读相同的数据片段,并且必须在数据发生变化时保持所有这些地方都是最新的,请考虑状态管理解决方案。
不幸的是(或者说幸运的是?)Flutter没有一个指定的状态管理解决方案,所以它更多的是一个选择你自己的冒险。
但是,如果您越来越多地遇到这些状态问题,发现自己在编写和维护必须获得相同状态的粘合代码,并在状态更改时通知许多地方,这表明库可以提供帮助。
您可以使用RiverpodFlutter Hooks,使用GetX之类的服务定位器,并将此数据保存在一个位置,只要适合您的解决方案即可。

相关问题