2014-12-02 29 views
2

我是ReactJS的新手,我試圖弄清楚如何存儲和操作全局狀態。例如,我正在寫有一些全局狀態的編輯應用程序:選擇顏色/背景,活動的工具,目前的選擇等自定義事件與ReactJS中的回調

我想有一個根接口組件來存儲這些信息,我沒關係使用屬性顯式傳遞狀態。我猜想兒童組件改變全局狀態的慣用方式是調用從父進程收到的回調 - 個人而言,我覺得這有點煩人。

相反,我在孩子們點燃自定義事件並在父級上設置監聽器。到目前爲止,它工作得很好,但我看了一眼lot of sample code,從未見過使用這種模式的人。

我應該考慮有什麼實際後果嗎?

+0

如果你不得不遍歷大量的組件並更新道具,它會變得緩慢,但這一切都歸結爲個人喜好和你喜歡做什麼。 – zackify 2014-12-02 19:40:59

+2

您是否在使用Flux?你正在做的是Flux的高度短路版本。除了你的事件會是動作,你的監聽器將會是監聽調度器的商店,而你的狀態將位於你的根視圖監聽的商店中。 – Tom 2014-12-02 21:55:17

+0

@tom謝謝你的提示,我不知道Flux(認爲它是服務器的東西),會看看 - 可能我試圖重塑它。如果有調度員參與,我猜它會入選事件;這會提高性能並使其更易於調試(事件驅動架構可能會很痛苦)。 – 2014-12-03 00:37:39

回答

1

助焊劑對操縱全球國家來說非常棒,因爲這些店面是全球性的。已知全局變差,但您與商店進行交互的方式是通過操作。行動使國家可預測和本地化。因此,即使狀態存儲本身是全局的,Actions也會使狀態交互非常本地。在工作中,我們傾向於通過動作來閱讀&,所以每個狀態變化都是一個導致易於編程行爲的「事件」。

我真的比不上通量角作爲自己的原則和流程是完全不同的。建議你嘗試迴流。