React Redux使用的一些小优化
之前画了一张redux的流程图,可以看看右下角的部分,可以看出来怎么进行优化。 在reducer里面,尽量减少数据的变动不要做多余、无意义的事也就是能不改变就不改变。比如不要做下面这种无谓的事情: function reducer(state,action){ // ....一大堆逻辑代码 return { ...state } } 这个代码虽然在selector中,也可以通过 但是如果直接 要做多余的检查同样,state内部数据,如果数据相同,尽量使用原数据。只针对复杂数据类型( function reducer(state,action) { let mayNotChange = state.mayNotChange; // mayNotChange为Array或Object let newState = {...mayNotChange}; // ...一大堆逻辑 return { ...state,mayNotChange: changed ? newState : mayNotChange // 没有发生改变的话,就用原来的对象 } } 很多时候,一般习惯于通过计算,然后直接把生成的 由于众所周知的
优化equal的四个方法在
可以通过自己的需求对着四个方法进行优化。 比如一个 state = { pageA: {...},pageB: {...},number: 2 } 而在pageA里面只需要 function areStatesEqual(prev,current){ return prev.number === current.number && isEqual(prev.pageA,current.pageA); } 或者针对复杂结构数据的情况,进行特殊处理,比如 function areStatePropsEqual(prev,current){ return deepEqual(prev,current); } 这些优化都可以减少不必要的计算和重渲染。 shouldComponentUpdate多余提一句,在使用 当某些小的、调用的次数少的component,就没有必要添加shouldComponentUpdate检查。 当组件够大,够复杂,可以考虑使用这个方法来减少re-render的消耗。当然,还是需要考虑用这个方法的消耗和diff&render的消耗比起来哪个更划算。 先想到这么多,等想到了其他的再添加上来。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |