javascript - immutable配合react提升性能?
問題描述
直接PureComponent那樣淺比較不就完了嗎;我覺得極少存在state引用改變而實際的值不發(fā)生改變
問題解答
回答1:我覺得immutable的好處是不可變,不會出現(xiàn)在其它地方被意外更改值的情況。還有可以快速比較,不需要一層一層的檢查。
回答2:我覺得immutable的好處確實有,不可變、兩對象比較都能在一定程度上提高性能。但是這種比較適合需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)同時頻繁數(shù)據(jù)操作。如果對于一般的場景,只是增加了復(fù)雜度、文件大小。比如獲取對象屬性const obj = {a: 1, b: 2, c: 3}
普通方式:
const {a, b, c} = obj;
immutable:
const a = obj.get(’a’);const b = obj.get(’b’);const c = obj.get(’c’);
而且如果是復(fù)雜場景,我們會使用redux,因為redux本身數(shù)據(jù)處理就是不可變,所以immutable也不適用。
回答3:嚴格說起來immutable轉(zhuǎn)換數(shù)據(jù)還會帶來性能損耗。API很方便的可以對于非常深層數(shù)據(jù)的對比跟修改操作
reducer.js
[actions.UPDATE_PROJECT_LIST_AFTER_DELETE]: (state, { data }) => { let index = data.index return state.updateIn([’dataList’,index,’status’], () => ’Deleted’)}
相關(guān)文章:
1. macos - mac下docker如何設(shè)置代理2. 請問哪里出錯了?執(zhí)行沒有反應(yīng)$stmt->execute() false 沒有報錯3. tp6連接sqlserver數(shù)據(jù)庫問題4. 隨機產(chǎn)生200個小寫英文字母,并統(tǒng)計個數(shù),這是在網(wǎng)上看到的粒子,我想問怎樣把它變得更簡便?5. 一封來自Java程序員的情書6. PHP搜索代碼只能搜出一頁,點擊任意頁碼不實現(xiàn)7. 改了host文件中的IP地址對應(yīng)的abcd.php.cn8. linux pdo 安裝配置中 make 遇到問題,請大家指教!9. 數(shù)組按鍵值封裝!10. 繪制圖表的問題
