gpt4 book ai didi

javascript - ReactJS:比较 shouldComponentUpdate 上的 Prop 和状态

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:49 25 4
gpt4 key购买 nike

我想检查所有属性和状态是否发生更改,如果有任何更改则返回 true 并为我的所有根组件创建一个基础组件。

我想知道这是否不是最佳实践并使我的组件变慢。此外,我所做的总是返回 true:

shouldComponentUpdate: function(newProps, newState) {
if (newState == this.state && this.props == newProps) {
console.log('false');
return false;
}
console.log('true');
return true;
},
  1. 我的代码有什么问题吗?
  2. 我应该检查 props 和 state 中的每个变量吗?
  3. 不会根据对象的大小检查它们内部的对象使其变慢吗?

最佳答案

比较 shouldComponentUpdate 中的 props 和状态以确定是否应该重新渲染组件被认为是最佳实践。

至于为什么它总是评估为真,我相信你的 if 语句没有执行深度对象比较,而是将你以前和当前的 Prop 和状态注册为不同的对象。

我不知道你为什么要检查两个对象中的每个字段,因为如果 Prop 或状态没有改变,React 甚至不会尝试重新渲染组件,所以 shouldComponentUpdate 方法被调用意味着某些东西必须已经改变。 shouldComponentUpdate 实现得更好,可以检查一些 props 或 state 是否发生变化,并决定是否基于此重新渲染。

关于javascript - ReactJS:比较 shouldComponentUpdate 上的 Prop 和状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com