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条经验 获得超5个赞
人们建议useEffect但它会在渲染后被调用。
改用useMemo:
useMemo(() => {
console.log('This is useMemo')
}, []);
添加回答
举报