2016-11-01 69 views
-1

我想知道如何構建由React/Redux支持的Web組件的應用程序。此示例https://github.com/facebook/react/blob/master/examples/webcomponents/index.html顯示瞭如何將Web組件綁定到React組件。但那不完全是我需要的。我的目的是聲明一系列「磚塊」,例如x-dataview,x-sidebar,x-panel,x-modal,它們具有特定的行爲,取決於通過屬性提供的配置。除了他們公開的API。React/Redux用於構建Web組件

我想用React讓他們活躍起來。所以當擁有這樣的集合時,可以用靜態HTML構建和配置應用程序。因此,消費者在處理HTML和暴露的API時不需要處理React源。

我一定能掛載產生反應,例如自定義元素,但它意味着每一個網絡組件單獨Redux的店,什麼違反了終極版的第一個原則:

「你整個應用程序的狀態存儲在單個商店內的對象樹 中。「

那麼有可能通過任何機會實現上述描述而不會破壞React和Redux的哲學?

+0

不,這沒有意義。 React不僅管理組件,還管理整個虛擬環境。這就是React React的原因。爲每個組件創建一個新的React根目錄將會失去React的所有優勢。試圖用Redux來做這件事就更沒有用了。請注意,HTML組件有一個影子dom,React有一個虛擬dom。試圖佔據主導地位的嘗試太多了。 React和Redux都可以從HTML或HTML組件中找到的單向數據流中獲益。你想要的磚塊只是React組件,而Redux則是將它們合併成單一應用程序的粘合劑。 – DDS

+0

在閱讀關於REact/Redux的文檔後,我有類似的印象。如Facebook所述https://facebook.github.io/react/docs/web-components.html「作爲開發人員,您可以在Web組件中自由使用React,或在React中使用Web組件,或同時使用這兩種組件「。但是將React附加到多個根可以感受到React哲學...... –

回答

1

如果這些組件彼此完全獨立,則可以爲它們中的每個組件創建一個單獨的Redux存儲。

通過這種方式,您可以添加/刪除任何您想要的組件,並且您在報價中提到的原則仍然適用 - 您只是將每個組件都視爲單獨的應用程序。

但是,如果您希望組件彼此交談,則必須在它們之間共享商店。