react小技巧--useState实现假深拷贝

const arr = [1, 2, 3];
const [listData] = useState(arr);

// 稍后修改 arr
arr.push(4);

// React 的 listData 状态不会反映这个变化
console.log(listData); // 输出:[1, 2, 3]

在 React 中,当你使用 useState 钩子来初始化状态时,状态的初始值是被“冻结”在组件首次渲染时的。这意味着,如果你使用一个变量 arr 来初始化状态 listData,那么这个 arr 的值在组件的整个生命周期中都不会改变,即使 arr 本身在组件外部被修改了。

在上面的代码中,即使 arr 被修改了,listData 的值也不会改变,因为它在组件首次渲染时已经被设置了初始值。所以是假深拷贝,并不是真的深拷贝

上一篇:从0到1学习node.js(http模块)


下一篇:提问: 监督学习, 无监督学习, 机器学习, 深度学习的关系? (通义千问2.5的回答)