2016-09-29 113 views
2

研究員工程師,我有一個關於react-redux的問題。我想知道是否使用第三方腳本分享redux商店狀態是好的/不好的做法。目前,我們使用Cookie向第三方腳本(非敏感狀態信息)提供一些狀態信息。但是,我們知道應用程序的真實來源是州樹/商店。所以爲了與redux的核心原則保持一致,你有什麼建議嗎?安全地與第三方腳本共享Redux狀態

下面是一個例子。因此,我們有一些需要與react-redux應用程序並行運行的舊腳本,它們在執行之前正在讀取一些cookie。例如,假設我們有一個叫做'用戶名'的cookie,它的值爲'john'。第三方腳本讀取該cookie,如果該值等於'john',則它執行某些操作。

在內部,我們的react/redux應用程序使用redurs/actions讀取/設置此cookie,但第三方腳本不是redux,只需知道此「名稱」值,並在其更改時通知它。

我在想,我們可以創建一些反應模塊,提供狀態樹的切片並使它們在窗口中全局可用。

這也似乎終極版手錶庫可能是有用的:https://github.com/jprichardson/redux-watch

理想情況下,我們想要得到這些第三方應用程序進行轉換,然後按照我們對我們的新反應/ Redux的應用程序實現的模式,然而,有時在大公司中,事情並不那麼簡單,所以我們需要使用遺留代碼庫進行工作。

有什麼想法?

回答

0

你不需要反應模塊。您的第三方腳本可以簡單的訂閱商店獲得更新:

store.subscribe(() => { 
    const username = usernameFromState(store.getState()); 
    // run the 3rd party code with the username 
}); 

我不明白爲什麼這不應該是一個問題。我認爲第三方腳本甚至可以向商店派發操作,就像您所說的商店「是應用程序的單一來源」。第三方腳本是該應用程序的一部分。