使用 useMemo 挂钩时重新渲染问题

问题描述 投票:0回答:1
const sum = useMemo(() => a + b, [a, b])

a
b
互换时会发生什么。就像当前渲染中的 if
a = 5
,
b = 10
一样。当
a = 10
b = 5
时会发生什么?更改后会重新渲染吗?

对此没有得到一致的答案。

javascript reactjs react-hooks memoization
1个回答
1
投票

只要状态发生变化(除其他外),就会发生重新渲染。

在您的情况下,如果

sum
a
发生变化,将重新计算
b
的值。但是,如果结果值与之前相同,它本身不会触发组件的重新渲染。

更改

a
b
的值将引发重新渲染,因为它们要么是组件状态的一部分,要么作为 props 传递。无论哪种方式,它们的更改都会触发组件的重新渲染

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