变化检测 - 强制不变性
优质
小牛编辑
129浏览
2023-12-01
因为在JavaScript原始类型,如 和 number
是不可变的,通过定义,我们应该只处理我们正在使用的对象。 在本例中为actor
对象。
这里有一个例子,比较可变的array
类型和不可变的string
类型:
然后在我们的中,我们导入库并使用它创建一个不可变的actor
对象。
app/app.component.ts
因为当我们尝试改变actor
时,我们总是得到一个新的对象,所以在我们的组件中有两个不同的方法没有意义。 我们删除了方法changeActorPrope
rties和changeActorObject
并创建了一个名为的新方法。
还必须对MovieComponent
进行其他更改。 首先,我们需要将actor
对象声明为不可变类型,并且在模板中,而不是尝试使用类似actor.firstName
的语法直接访问对象属性,我们需要使用不可变的get
方法。
使用这种模式,我们充分利用了“OnPush”变化检测策略,从而减少了Angular传播变化、获得模型、视图同步的工作量。 这提高了应用程序的性能。