首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么要避免在shouldComponentUpdate中使用_.isEqual

为什么要避免在shouldComponentUpdate中使用_.isEqual
EN

Stack Overflow用户
提问于 2018-10-23 21:02:26
回答 1查看 1.6K关注 0票数 1

我已经读过这个问题很多次了,每次建议的答案都是不要使用深度比较,因为它代价很高。我已经尝试在我的应用程序中实现了这一点,它看起来确实非常快。

代码语言:javascript
运行
复制
  shouldComponentUpdate = (nextProps, nextState) => {
    let a = +new Date();
    let equalProps = _.isEqual(this.props, nextProps);
    let equalState = _.isEqual(this.state, nextState);
    let b = +new Date();
    console.log("----> deep equality navbar took ", b - a, " result = ", equalProps && equalState);

    if (equalProps && equalState) return false;

    return true;
  };

下面是生成的日志示例:

代码语言:javascript
运行
复制
----> deep equality msg list took  0  result =  false
----> deep equality msg list took  0  result =  false
----> deep equality navbar took  0  result =  true
----> deep equality sidebar took  0  result =  true
----> deep equality msg list took  1  result =  false

基本上,它似乎永远不会超过1毫秒,我正在处理一些6/7级别的嵌套对象。消息列表的渲染通常需要70ms以上。我可以通过不到1ms的函数调用来轻松避免。

我是不是错过了什么重要的东西?这似乎是好的,几乎是真的。烘焙我:)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52949795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档