const sum = useMemo(() => a + b, [a, b])
当
a
和b
互换时会发生什么。就像当前渲染中的 if a = 5
, b = 10
一样。当a = 10
、b = 5
时会发生什么?更改后会重新渲染吗?
对此没有得到一致的答案。
只要状态发生变化(除其他外),就会发生重新渲染。
在您的情况下,如果
sum
或 a
发生变化,将重新计算 b
的值。但是,如果结果值与之前相同,它本身不会触发组件的重新渲染。
更改
a
或 b
的值将引发重新渲染,因为它们要么是组件状态的一部分,要么作为 props 传递。无论哪种方式,它们的更改都会触发组件的重新渲染