当前位置: 首页 > Web前端 > JavaScript

《如何通过闭包对象管理程序中状态的变化?》学习笔记day3

时间:2023-03-27 11:24:29 JavaScript

不可变原始类型值不能改变原始类型的值对象类型值是可变的React.js中的Props和stateprops通常作为外部参数传入函数。在UI中呈现为静态元素输出。状态是一个内部变量。在UI中呈现为动态元素输出。props和state都使用对象来存储状态。structvaluesimmutableprops和state有必要吗?props是必须的,state不是,如果应用和用户之间有交互,就需要对值的状态进行管理,围绕值设计一系列的行为。在这个过程中,我们需要考虑的是值的结构不可变的问题。闭包和对象都可以封装和创建状态值,因为。闭包最大的特点就是可以突破生命周期和作用域的限制。当一个外部函数嵌入一个内部函数时,如果嵌入函数引用了外部函数的变量,这个变量就会突破生命周期的限制,在函数结束时执行。在那之后,它仍然存在。突破范围限制意味着我们可以将一个内部函数作为方法返回,并在外部调用。纯粹从值的状态管理和围绕它的行为集的角度来看,我们可以说闭包和对象是同构的。差异:隐私、状态复制、性能。在结构值处理问题中,检查和修改闭包有不同的优缺点:除非通过接口,在外部函数中返回内部函数的方法,否则内部对象不是外部的:不需要特殊的方法,可以获取对象中的属性,重新赋值;Object.freeze()——设置对象为read-only>writable:falsestatecopy如何解决复制性能问题?如何通过复制+更新的方式解决复制性能问题?解决方案1:使用类似于链表的结构,其中包含一组记录更改的索引和关联值的对象。性能方面的考虑:从性能的角度来看,对象内存和操作要优于闭包。

猜你喜欢