react diff算法--zhuanlan.zhihu.com/p/20346379 react.memo 应用及实现
react -- 依赖先于状态问题
- 对于依赖于先前状态的更新,使用函数式更新可以确保更新是基于最新的状态。
- 这意味着在更新状态时,可以访问到当前的状态值,并根据需要进行计算。
例如,在使用
setCount(count=>count+1)进行状态更新时,它会接收当前的count值,并将其加1来计算新的状态值。这样可以确保更新是基于最新的状态,即使在多个更新操作之间状态发生了变化。 相比之下,使用setCount(count+1)进行状态更新时,它会直接将当前的count值加1,而不考虑其他更新操作的影响。这可能导致更新结果不准确,特别是在并发更新的情况下。 因此,使用函数式更新可以提供更可靠的状态更新,特别是在依赖于先前状态的情况下。
useEffect(() => {
const id = setInterval(() => {
// setCount(count + 1); 1
setCount((count) => count + 1);
}, 1000);
return () => clearInterval(id);
}, []);