2015-10-31 36 views
1

夥計。當我瀏覽redux-router的文檔時,我無法理解爲什麼我們需要它?除了重新路由器之外,Redux-Router還有什麼用?

下面是該文檔試圖解釋:

陣營路由器是一個夢幻般的路由庫,但一個缺點是, 它抽象掉的應用程序狀態非常關鍵的部分 - 在 當前路線!這種抽象對於路由匹配和渲染非常有用,但是用於與路由器交互的API 1)觸發 轉換和2)對組件 生命週期內的狀態變化做出反應留下了一些需要的東西。

事實證明,我們已經通過Flux(和Redux)解決了這些問題:我們使用動作創建器觸發狀態更改,我們使用 高階組件訂閱狀態更改。

此庫允許您在Redux 商店內保留路由器狀態。因此,獲取當前的路徑名,查詢和參數與選擇應用程序狀態的任何其他部分一樣容易。

據我所知,它試圖說,REDX路由器可以將路由器狀態保存在REDX存儲中,以便我們可以更方便地獲取路由信息。

但是在react-router中,我也可以輕鬆地做到這一點。 像path =「messages /:id」,我可以使用this.props.params.id來獲取參數。

有人可以解釋在什麼情況下redux路由器帶來了好處?

回答

3

Redux(以及通常的通量模式)都是關於將整個應用程序狀態存儲在一箇中心位置。這具有更容易調試的優點,並且使得更容易實現某些功能。

如果您曾經在react-router的反應應用程序中使用過redux-devtools,那麼您會注意到它僅限於有限使用,因爲您無法重播應用程序的整個生命週期。當用戶更改路線時,不會記錄在redux商店中。 Redux Router將路由狀態保存在存儲中。

您可以將其用於調試,您可以將整個商店歷史序列化並將其記錄到別處以重播用戶會話。您可以將其掛鉤以實現完全撤消或記錄分析事件。

+0

喬希感謝您的回覆。真的很感激它。 –

1

redux-simple-router是一個庫,可以幫助您瞭解如何在redux應用程序中使用react路由器。

這是一個非常簡單的庫,它將URL存儲爲redux狀態,並使其與任何反應路由器更改保持同步。

終極版,簡單的路由器相比Redux的路由器是:

  • 小得多,簡單。你不需要再去學習另外一個庫。
  • 鼓勵直接訪問react-router API。需要服務器端渲染,還是其他的高級?只需閱讀react-router的文檔即可。
  • 只存儲當前的URL和狀態,而redux路由器存儲來自react-router的整個位置對象。

遵循的這兩個例子一個起牀和運行:

相關問題