我们都知道react 有一个 shouldComponentUpdate 来优化视图更新的,判断在需要更新的时候让视图更新,那么问题来了,什么时候该用这个优化呢,一般数据更新,不都得跟新视图吗?
我们都知道react 有一个 shouldComponentUpdate 来优化视图更新的,判断在需要更新的时候让视图更新,那么问题来了,什么时候该用这个优化呢,一般数据更新,不都得跟新视图吗?
当你觉得,被改变的state或者props,不需要更新视图时,你就应该思考要不要使用它。
需要注意的一个地方是:改变之后,又不需要更新视图的状态,也不应该放在state中。
shouldComponentUpdate的使用,也是有代价的。如果处理得不好,甚至比多render一次更消耗性能。慎用!
可以使用 @welldone-software/why-did-you-render
检测不必要的重复渲染,比如 props 中有 object,可能存在多次 render 时 different objects that are equal by value,即 props 值实际上没有变化,但是引用类型的问题导致浅比较时不相等,就会 update
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
一般会直接使用 pureComponent 来进行优化. 对于对象, 数组, 若有修改, 每次都要生成一个新的引用.