我注意到,当我更新信号变量中的单个值(例如( const count = useSignal(0) )时,DOM 不会重新渲染,但是当我更新对象的值时,DOM 会重新渲染每次。 为什么会这样?
您在组件渲染时使用 items.value 。如果该值(数组本身)发生变化,组件将重新渲染。如果您使用 count.value 而不是 count,则当 count 发生变化时组件也会重新渲染。
items.value.map
返回新数组,因此无法使用该实现来跳过重新渲染。如果您将循环逻辑移到新组件中并将项目作为 prop 传递给它,那么只有新组件才会重新渲染