2015-12-22 16 views
0

也許在官方流量網站,我看到了一個視頻是導師說的一樣:通量:不應-頂級的觀點是「傾銷」(不取從存儲數據)

只有頂級陣營意見應該知道關於商店。所有不是頂級 視圖應該轉儲並接收所有信息作爲屬性。

問:是嗎?你的論點,請

但是,假設你有一些小的反應視圖Button.react這是在多個頁面上重複使用。並且假設Button.react必須知道一些商店數據。如果我們不直接從Button.react獲取所有數據,我們會在每個頂級組件重複使用Button.react的代碼。 這對你來說好嗎?

回答

1

我希望我能理解你的問題。

React的特點之一是它的單向數據流。每個組件可以被另一個組件使用,就像一個功能可以調用另一個功能一樣。就像一個函數一樣,一個React組件通常應該能夠獲得它傳遞給它的參數所需的所有信息(渲染自己)。這是React中props的功能。在使用Flux時,有時通常靠近視圖層次結構頂部的React組件實際上從商店獲取數據以傳遞到應用程序,這些組件稱爲Controller-Views

這不是一個可強制執行的規則,即每個組件都不會成爲Controller-View,從存儲中直接獲取其自己的狀態,但這是一種普遍的做法。考慮兩個功能:

function renderToggleButton(isSelected){ 
    //... render the button 
} 

VS

function renderToggleButton(){ 
    var isSelected = StateStore.getButtonSelectedState(id); 
    //... render the button 
} 

我想你會同意,第二個功能是更爲複雜和困難的考驗。它必須知道它從哪裏獲得初始條件。它還必須知道如何在應用環境中識別自己。這些是函數應該不必知道的兩件事。

現在想象一個充滿這種功能的應用程序。如果一個功能行爲不當,追蹤其輸入變得非常困難;在受控條件下進行測試。我希望澄清通過申請傳遞數據給出的指導,作爲props

+0

謝謝!很清楚的解釋 –