重新渲染功能组件

时间:2020-08-17 10:24:51

标签: reactjs

React docs中,我发现此组件应该只渲染两次:

function Users() {
  const [count, setCount] = useState(0);
  console.log("---: " + count)

  useEffect(() => {
    console.log("useEffect")

    const id = setInterval(() => {
      console.log("setCount: " + (count + 1))
      setCount(count + 1); // This effect depends on the `count` state
    }, 1000);

    return () => clearInterval(id);

  }, []); // ? Bug: `count` is not specified as a dependency

  return <h1>{count}</h1>;
}

尝试运行先前的组件,您将在可见this logs的位置将组件重新渲染3次。因此,即使 setState 返回了相同的值,也会发生一次不必要的渲染(只有一次,但仍然如此)。有人可以解释一下吗?

0 个答案:

没有答案