细看的问题

52 阅读1分钟

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);
  }, []);
  

hook实现一个倒计时组件