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

useSignal re-rendering state while updating a value in an object, why?

提问人:Abinash 提问时间:11/6/2023 更新时间:11/6/2023 访问量:32

问:

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

code-sandbox 链接:

ReactJS DOM 信号

评论


答:

0赞 Oktay Yuzcan 11/6/2023 #1

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

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