为什么缺省的shouldComponentUpdate比较nextProps和当前的nextProps?

时间:2017-06-26 03:15:32

标签: javascript reactjs react-redux

我想知道为什么shouldComponentUpdate默认为return true,而我似乎只有{1}并且唯一的理由是不重新呈现,如果nextPropsthis.props在像

这样的深刻比较中,它是“平等的”
function shouldWeRender(prev, next)
{
    return !objectsEqual(prev, next);
}

function objectsEqual(a, b)
{
    var ta = typeof(a), tb = typeof(b);
    if(ta !== 'object' || tb !== 'object') {
        throw 'Arguments must be objects';
    }
    var ka = _.keys(a), kb = _.keys(b);
    if(ka.length !== kb.length) {
       return false;
    }
    _.forEach(ka, function(key) {
        if(!b[key]) {
            return false;
        }
        else if(typeof(a[key] === 'object') && !objectsEqual(a[key], b[key])) {
            return false;
        }
        else if(a[key] !== b[key]) {
            return false;
        }
    });
    return true;
}

假设我们正在使用无状态组件,那么它是否应该能够作为渲染的通用条件?

0 个答案:

没有答案