3 回答

TA貢獻1797條經驗 獲得超6個贊
這就是使用React.memo的意義所在,以防止在子組件的 props 不變時重新渲染它們。
React.memo 是一個高階組件。它類似于 React.PureComponent 但用于函數組件而不是類。
如果你的函數組件在給定相同的 props 的情況下呈現相同的結果,你可以將它包裝在對 React.memo 的調用中,以便在某些情況下通過記憶結果來提高性能。這意味著 React 將跳過渲染組件,并重用上次渲染的結果。
const FunctionalComponent = React.memo<{initialValue: number}>({initialValue}) => {
const [timerValue, setTimerValue] = useState(initialValue)
console.log('Set State')
useEffect(() => {
console.log('UseEffects called')
setInterval(() => {
setTimerValue(timerValue - 1)
}, 1000)
}, [])
return <View><Text style={styles.textStyle}>{timerValue}
</Text></View>
};

TA貢獻1906條經驗 獲得超3個贊
簽出 React.memo,如果子組件的 props 沒有改變,女巫將阻止重新渲染
const FunctionalComponent = React.memo((props: any) => { .... } )

TA貢獻1993條經驗 獲得超6個贊
人們建議useEffect但它會在渲染后被調用。
改用useMemo:
useMemo(() => {
console.log('This is useMemo')
}, []);
添加回答
舉報