方案:我有一個資產清單<AssetList />
。隨着用戶向下滾動到列表的底部,我的應用程序將懶惰地加載剩餘的資產。因此,取決於用戶向下滾動多遠,可以加載數百個甚至數千個資產。Redux:每條記錄可能有數千條記錄的一種格式
問題:點擊每個資產<Asset />
將擴展它,並允許用戶編輯其字段(名稱,內容,..)過渡應該是無縫的。正如我所看到的,每項資產都必須是一種形式。我的顧慮是1)方法和2)性能。
方法:我在這裏採用的方法是使用每個記錄使用redux-form
的一種格式。除此之外還有什麼替代方案可以實現通量架構?這是個常見的問題嗎?
這裏的另一個可能的方法是修改狀態樹來,並且每個整個資產列表中的一個形式:
{
assets: {..},
assetForm: {..}
}
而且點擊的<Asset />
反而會觸發相應的動作,這將級聯到減速機,其將更新assetForm
狀態。
性能:我最大的遠遠的關注。我不介意頁面上的大量表單,但是我擔心的是,每個表單都與一個Redux存儲區縮減器相關聯(或者至少這是我認爲utils如redux-form所做的)。換句話說,潛在的成千上萬的減速器是否會影響性能?
我很抱歉,如果我的假設是不正確的。我是比較新的反應&減少。
謝謝@ZekeDroid。我實際上考慮過最初每個整個資產列表都有一個表格。我剛剛更新了更具體的問題。我認爲你的方法是健全的。至於你提到''assetForms''的第二部分 - 由redux-form管理。你提供一個表單鍵,它可能是你的資產ID,它保存表單狀態,字典樣式。 –
啊我明白了,你的表格到底有多複雜?我幾乎會建議你自己管理這些領域,因爲這會使它更容易處理。您可以讓每個資產都使用ID和'onChange'的回調進行初始化,以便父母可以在此回調中觸發類似'{type:'ASSET_CHANGED',assetID:'some_id',fieldsChanged:{name:' foo',描述:'bar'}}'。這樣,你絕對沒有額外的信息,再次,只有用戶試圖改變它們的狀態字段。 – ZekeDroid
只要我遵循。首先,您會在整個資產清單中推薦一種形式? –