繁体   English   中英

块模式:每个屏幕都有自己的块?

[英]Bloc Pattern: Every screen gets its own bloc?

我正在学习Flutter的 bloc 模式,似乎有一条反复出现的建议“每个屏幕都应该有自己的 bloc”。

但是,如果您向服务器查询将在多个屏幕中使用的数据怎么办? 为同一条数据多次访问服务器似乎是多余的,甚至是浪费的,特别是如果您知道数据没有改变(例如,当没有使用改变/更新它的操作时)。

无论如何,您是否可以以某种方式保存该数据以重用它? 在存储库级别以这种方式存储数据是个好主意吗? 或者这只是使用集团的公认成本?

架构决策总是高度自以为是,没有灵丹妙药。

好吧,给你。


无论如何,您是否可以以某种方式保存该数据以重用它?

场外是的。 您可以按照以下方式构建您的应用程序。

小部件 -> Bloc -> 存储库 -> 本地数据库/远程 API

因此,您的 bloc 永远不会直接进行任何 API 调用,但您的 repo 层会这样做。 因此,repo 层可以决定是从远程 API 还是本地 DB 甚至内存缓存中获取数据。 这样,您可以在应用程序的多个屏幕上重用已经缓存的数据。

有趣的是,如果您以这种方式构建您的应用程序,那么对您的代码进行单元测试将变得非常容易。


在存储库级别以这种方式存储数据是个好主意吗?

是的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM