SuperAPI AI 工具集

immutability

编程与开发

查看项目

更新于 10-16 02:33

技能介绍

用途:该技能用于指导在修改对象或数组时采用不可变(immutability)写法,核心规则是“永不直接变更,始终返回新对象”。适用于更新 React/Redux 状态、函数接收对象参数、数据在代码多处共享,以及状态变化引发难以追踪的 bug 等场景。

主要能力:识别直接变更的“坏味道”,例如 obj.property = value、array.push/pop/splice、未先复制就 array.sort()、修改函数参数、delete obj.property;并给出对应的不可变替代写法,如 { ...obj, x: y }、[...arr, x]、arr.slice(0, -1)、arr.filter、[...arr].sort()、const { x, ...rest } = obj。还涵盖嵌套更新的展开写法,以及复杂更新时可使用 immer 的 produce。

使用方式:在修改对象或数组前先判断是否直接变更了原数据;若是,则改写为返回新副本。文中强调无例外,即使出于“更高效”“更简单”“只改一个属性”“没人用这个对象”等理由也不应变更。

限制与说明:资料未提供安装命令、平台支持、收费或性能基准等具体信息;关于性能仅说明现代 JS 引擎会优化,若怀疑性能问题应进行性能分析。