说说你了解的Immutable
Immutable是解决Mutable数据操作中的一些问题的,因为JS数据分为引用类型与基础类型, 引用类型在赋值传递的时候往往其实是地址传递,可能会出现一些预料外问题。
Immutable的思想就是构建持久化、不可变的、结构共享的状态,当对immutable数据进行操作的时候,实质上不会更改原数据,而是会根据原数据生成一个新的immutable数据,这样就可以避免刚才说的问题, 并且immutable采用的是结构共享的方式,生成新的immutable数据的时候不会完全重建,而是只重新更改后的节点及其父节点,其他节点与上次的immutable数据共享, 节省了新建的性能开支。
优点:出问题的概率小,更稳定,比起深拷贝来说性能也更高
缺点:需要重新学习Api,学习成本高,也需要额外导入对应的文件, 增加打包体积
其实immutable数据在redux中非常适合,不必再考虑reducer中每次都需要新建新状态的问题,而RTK中已经内部使用了immutable来构建状态。
相关推荐HOT
更多>>如何添加Java环境变量?
要添加Java环境变量,可以按照以下步骤:并安装Java开发工具包(JDK)、找到Java安装路径、设置JAVA_HOME环境变量、添加Java可执行文件路径到PATH...详情>>
2023-05-04 11:00:56从零开始学Java之String字符串的编码
对很多小白来说,可能不明白什么是字符编码,也不知道为什么要有字符编码,所以先来给大家简要地介绍一下字符编码。详情>>
2023-05-04 10:21:02新手速来!几步带你掌握MyBatis Plus
Mybatis-Plus(简称MP)是一款Mybatis的增强工具,它是在Mybatis的基础上实现的简化开发工具。Mybatis-Plus给我们提供了开箱即用的CRUD操作、自动...详情>>
2023-04-28 10:57:09学习java需要什么基础?基础知识有哪些?
网络编程:了解基本的网络编程概念和协议,熟悉 Java 网络编程 API。建议在学习 Java 之前,先学习一些基础的编程语言,如 C 或 Python 等,这...详情>>
2023-04-28 10:41:14