簡體   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