自动冻结
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
egghead.io lesson 7: Immer automatically freezes data
Immer 会自动冻结所有通过 produce 修改的状态树。这能防止在生产者函数外部意外修改状态树。在大多数情况下这是最优行为,但也可以通过 setAutoFreeze(true / false) 显式开关此功能。
Immer 永远不会冻结不可枚举的、非自有的或符号属性的内容,除非这些内容在草稿中被修改过。
⚠️ Immer 会递归冻结所有内容,对于未来不会更改的大型数据对象,这可能有些过度处理。此时使用 freeze 工具进行浅层预冻结会更高效。⚠️
⚠️ 启用自动冻结时,配方函数并非完全无副作用:任何最终出现在生成结果中的普通对象或数组都将被冻结,即使这些对象在生产者开始前并未冻结!⚠️