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
这回答了你的问题吗?