我希望我能理解你的問題。
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
。
謝謝!很清楚的解釋 –