React - 为什么点击按钮后输出是这样的?

问题描述 投票:0回答:1

下面是我的 React 代码:

import { useState } from 'react'

function Child() {
  console.log(2)
  return <p>Child Component</p>
}

function App() {
  console.log(1)
  const [count, setCount] = useState(0)

  return (
    <div>
      <button
        onClick={() => {
          console.log('click')
          setCount(1)
        }}
      >
        Click Me
      </button>
      <p>Count: {count}</p>
      <Child />
    </div>
  )
}

export default App

console output

第一次点击按钮,控制台输出

click 1 2
;

第二次点击,控制台输出

click 1
;

第三次及后续点击,控制台输出

click

那么为什么它会这样呢?

javascript reactjs react-hooks react-fiber
1个回答
0
投票

当新的状态值与当前状态值相同时,React 不会触发组件的重新渲染,以避免不必要的重新渲染来优化性能。

© www.soinside.com 2019 - 2024. All rights reserved.