Reactjs 为什么useState钩子会在React中导致不必要的重新渲染循环?

Reactjs 为什么useState钩子会在React中导致不必要的重新渲染循环?,reactjs,react-hooks,Reactjs,React Hooks,为什么要这样定义状态: const [flipCardDeg, changeFCDeg] = useState(0); const getMoreData = false const [flipCardDeg, changeFCDeg] = useState(0); useEffect(() => { console.log('say something once') return () => { console.log('why say it again?')

为什么要这样定义状态:

const [flipCardDeg, changeFCDeg] = useState(0);
const getMoreData = false
const [flipCardDeg, changeFCDeg] = useState(0);
useEffect(() => {
  console.log('say something once')
  return () => {
    console.log('why say it again?')
  }
}, [getMoreData])  // will only run once unless getMoreData is changed
在正常功能组件中,是否会导致额外的重新渲染周期? 它不是1次重新渲染,而是两次重新渲染

我知道,如果某处使用“changeFCDeg”来更改它应该重新渲染的状态,那没关系。但是为什么一开始,当初始化所有内容时,它会再次渲染


我是否应该担心有2个重新渲染而不是一个,如果是,如何处理它?

每当检测到更改时,反应重新渲染。您可以通过精确地指定它所感知到的变化来尝试控制它。例如,像这样:

const [flipCardDeg, changeFCDeg] = useState(0);
const getMoreData = false
const [flipCardDeg, changeFCDeg] = useState(0);
useEffect(() => {
  console.log('say something once')
  return () => {
    console.log('why say it again?')
  }
}, [getMoreData])  // will only run once unless getMoreData is changed

这回答了你的问题吗?