useSignal 在更新对象中的值时重新渲染状态,为什么?

问题描述 投票:0回答:1

我注意到,当我更新信号变量中的单个值(例如( const count = useSignal(0) )时,DOM 不会重新渲染,但是当我更新对象的值时,DOM 会重新渲染每次。 为什么会这样?

代码沙箱链接:

reactjs dom signals
1个回答
0
投票

您在组件渲染时使用 items.value 。如果该值(数组本身)发生变化,组件将重新渲染。如果您使用 count.value 而不是 count,则当 count 发生变化时组件也会重新渲染。

items.value.map
返回新数组,因此无法使用该实现来跳过重新渲染。如果您将循环逻辑移到新组件中并将项目作为 prop 传递给它,那么只有新组件才会重新渲染

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