2016-02-07 46 views
3

我是React.js的新手,我很享受。在閱讀React.js文檔時,我遇到了Flux體系結構。我知道Flux只是一種模式,並且有很多Flux實現 - 包括Facebook自己的實現。我也知道React.js可以在沒有任何Flux實現的情況下使用。React.js是否具有基本的Flux實現?

我的問題是:可以肯定地說React.js內嵌了自己的(小)Flux實現嗎?在我看來,我沒有看到React.js在沒有自己的Flux實現的情況下實現其單向數據流的任何其他方式 - 當然,這可以用其他Flux實現替換。

+1

它不 - reactjs只是一個渲染庫。 – zerkms

回答

3

助焊劑是處理應用程序狀態的模式和反應只是查看庫。您不必使用助焊劑反應,但它是首選的方式。

現在最流行的助焊劑實施似乎是Redux

+0

是的,我完全得到了這個。我基本上是從另一個角度思考的。在我看來,當我們在React組件上監聽事件時,我們添加動作處理程序,並在那些動作處理程序中手動調用setState來更新相應的狀態,我們在某種程度上實現了一個非常有限的功能'Flux'。儘管沒有合適的「Dispatchers」,「Stores」,但我們的操作處理程序通過偵聽更改和更新組件的狀態來充當兩者。我的思維方式可能不正確,但那就是我如何繪製事物。 –

+0

React社區慢慢傾向於無狀態的組件,其中你考慮存儲到'this.state'中的每個狀態都應該由Flux商店來處理。 – luboskrnac

+0

根據我的結論,與其他視圖庫一樣,「React」具有管理應用程序狀態的獨特方式。但爲了獲得單向數據流的好處(「React」沒有默認情況下),我們需要使用像Flubook,Flux,Redux,Reflux等'Flux'實現。我的理解是否正確? –

1

下面的圖片是一個什麼樣的解釋,什麼是沒有反應過來:

  • 綠色的東西=的一部分陣營:一個庫來渲染組件樹的DOM(或其他地方) 。單向流意味着/只允許自頂向下更新:任何組件都可以通過狀態變化(通過狀態變化)或其子節點(通過向樹中傳遞道具)來渲染/更新/更改。
  • 藍色部分是Flux模式的一部分。 React沒有任何代碼/庫組件。

enter image description here

焊劑的元件使圓完成:它們允許反應的組分來觸發動作,這又更新存儲,並且可以允許(頂部)組件來基於在變化重新呈現商店。有許多庫(e.d. redux,迴流,alt)實現了通量架構的各種元素。