React中Component和PureComponent深度解析
React.PureComponent与React.Component几乎完全相同,但React.PureComponent通过props和state的浅对比来实现shouldComponentUpdate().
在PureComponent中,如果包含比较复杂的数据结构,可能会因为深层的数据不一致而产生错误的否定判断,导致界面得不到更新。
如果定义了shouldComponentUpdate(),无论组件是否是PureComponent,它都会执行shouldComponentUpdate结果来判断是否update。如果组件未实现shouldComponentUpdate(),则会判断该组件是否是PureComponent,如果是的话,会对新旧props、state进行shallowEqual比较,一旦新旧不一致,会触发update.
浅对比:通过遍历对象上的键执行相等性,并在任何键具有参数之间不严格相等的值时返回false。当所有的键的值严格相等时返回true。
区别点:
PureComponent自带通过props和state的浅对比来实现shouldComponentUpdate(),而Component没有。
PureComponent确定
可能会因为深层的数据不一致而产生错误的否定判断,从而shouldComponentUpdate结果返回false,界面得不到更新。
PureComponent优势
不需要开发者自己实现shouldComponentUpdate,就可以进行简单的判断来提升性能。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战