2017-05-22 36 views
2

我正在使用Angular編寫我的應用程序,並使用Reduxngrx/store來存儲我的應用程序狀態。我應該在每個路由器導航上重置我的redux商店嗎?

一切工作正常,但現在我的應用程序變得非常大,我想出了以下觀察:

近每一頁/資源,我用不同的解析器,從我的後端獲取,所有必要的數據正確顯示並在此特定頁面上執行操作。

此解析器允許我使此頁面獨立於應用程序的以前的狀態。

因此,如果應用程序被加載並從假設開始: https://myapp.com/resourcetype1/resourceId

解析器將依次加載resourcetype1與ID RESOURCEID我的網頁工作開箱。

知道了,我在想,如果它可能是一個好主意,完全重置每個路由器導航我的終極版商店開始

我認爲這可能有兩方面的好處:

  • 提供更清潔的終極版商店沒有從以前執行的頁面殘留數據。
  • 在每次'頁面顯示'之前提供一個空的存儲,這可以幫助檢測頁面何時使用來自之前加載的頁面的數據(以及如果使用它的urm直接加載,則會崩潰)。

所以問題是:

  • 你覺得這個怎麼樣反思?
  • 你有什麼習慣?
  • 您是否在某個時間點重置了您的REDX商店?

回答

2

這真的取決於您的應用程序!例如,如果您使用Redux是因爲每個頁面都有一組複雜的數據可處理,但每個頁面都完全獨立於其他頁面,也許您可​​能希望在每次更改之間清除它。

雖然這感覺有點奇怪。你在談論什麼資源?你會不會回到以前的資源?

在我的一個應用程序中,我確實有工作區。而且每個工作區都可以包含大量數據。用戶不會經常改變他們的工作空間,當他們這樣做時,可能不會回到前一個工作空間。所以,無論何時用戶導航到另一個工作區,我都清理(幾乎)所有的縮減器。

但是,只要用戶在同一個工作區,我就保留了大部分信息。這非常棒,因爲剛開始時,用戶只是選擇了一個工作區,它幾乎沒有任何東西。然後,當他瀏覽一些細節時,應用程序正在獲取數據並將其存儲在相應的縮減器中。

因此,當用戶回來查看一些數據時,第一次在應用程序獲取數據時出現延遲,第二次和+時,用戶會看到商店中已有的內容(即時)。當然,它仍然試圖獲取數據以確保它是最新的,但如果它沒有改變,用戶可以在呼吸中與它進行交互。

相關問題