不变的更新模式
我们将学习如何不变地执行基本更新操作,例如更新对象中的字段或将项目添加到数组的末尾。 但是,减速器通常需要结合使用这些基本操作来执行更复杂的任务。 以下是一些您可能必须执行的最常见任务的示例。 可变对象是一种对象,其状态在创建后即可修改。 可变的本机JavaScript值的示例包括对象,数组,函数,类,集合和映射。 2. 不可变对象是创建后状态无法更改的对象。 不变的本机JavaScript值的示例是数字和字符串。 那么为什么这很重要呢? 考虑以下代码示例: 更新嵌套数据的关键是必须适当复制和更新嵌套的每个级别。 尝试更新嵌套对象时,经常会发生一些特定的问题。 这些会导致意外的直接突变,应该避免。 常见错误#1:指向相同对象的新变量 定义新变量不会创建新的实际对象,而只会创建对同一对象的另一个引用。 此错误的一个示例是: 此函数确实可以正确返回顶级状态对象的浅表副本,但是由于nestedState变量仍指向现有对象,因此状态被直接mutated 。…