react性能优化

2017-05-27  本文已影响67人  星月西

1.PureRender纯渲染

纯渲染,组件的渲染是被相同的props和state渲染得到的相同结果。
可以在shouldComponentUpdate函数中,对传入的props和state与之前的进行浅比较,如果相同则组件不会执行render方法,来减少dom渲染次数。
其中用作浅比较的shallowEqual如下:

function shallowEqual(a,b){
    if(a===b){
        return true;
    }

    const aKeys=Object.keys(a);
    const bKeys=Object.keys(b);
    if(aKeys.length!==bKeys.length){
        return false;
    }

    //仅进行浅度比较,仅比较其引用
    return aKeys.every((key)=>{
        return a[key]===b[key];
    });
}

2.Immutable

不可变数据就是一旦创建,就不能再更改的数据,对Immutable对象进行修改,就会返回一个新的Immutable对象。

上一篇 下一篇

猜你喜欢

热点阅读