博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react中使用immutable
阅读量:7222 次
发布时间:2019-06-29

本文共 883 字,大约阅读时间需要 2 分钟。

官方文档(https://immutable-js.github.io/immutable-js/docs/#/)

有人说 Immutable 可以给 React 应用带来数十倍的提升,也有人说 Immutable 的引入是近期 JavaScript 中伟大的发明,因为同期 React 太火,它的光芒被掩盖了。这些至少说明 Immutable 是很有价值的,下面我们来一探究竟。

JavaScript 中的对象一般是可变的(Mutable),因为使用了引用赋值,新的对象简单的引用了原始对象,改变新的对象将影响到原始对象。如 foo={a: 1}; bar=foo; bar.a=2 你会发现此时 foo.a 也被改成了 2。虽然这样做可以节约内存,但当应用复杂后,这就造成了非常大的隐患,Mutable 带来的优点变得得不偿失。为了解决这个问题,一般的做法是使用 shallowCopy(浅拷贝)或 deepCopy(深拷贝)来避免被修改,但这样做造成了 CPU 和内存的浪费。

Immutable 可以很好地解决这些问题。

什么是 IMMUTABLE DATA

Immutable Data 就是一旦创建,就不能再被更改的数据。对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象。Immutable 实现的原理是 Persistent Data Structure(持久化数据结构),也就是使用旧数据创建新数据时,要保证旧数据同时可用且不变。同时为了避免 deepCopy 把所有节点都复制一遍带来的性能损耗,Immutable 使用了 Structural Sharing(结构共享),即如果对象树中一个节点发生变化,只修改这个节点和受它影响的父节点,其它节点则进行共享。

immutable提供了get和set方法

https://www.cnblogs.com/3body/p/6224010.html

转载于:https://www.cnblogs.com/lanshu123/p/10646213.html

你可能感兴趣的文章
shell 脚本攻略--命令之乐
查看>>
字符编码方式
查看>>
在 CentOS上安装配置 Ganglia-3.4.0
查看>>
linux 打包和压缩的概念和区别
查看>>
C++ 模版整理
查看>>
NOIP 2012 提高组第一试模拟赛 魔法树 Solution
查看>>
HTML设置焦点
查看>>
团队进展报告(4)
查看>>
mysql c api 编程(一)
查看>>
【原创】MySQL和PostgreSQL 导入数据对比
查看>>
Linux awk: print中存在变量的情况
查看>>
Exchange2010安装配置篇三 证书服务
查看>>
JavaScript数据结构-栈
查看>>
当信息安全遇上应用交付
查看>>
“中国经济脱轨论”是小人之言
查看>>
Oracle RAC日常基本维护命令
查看>>
QT Sqlite ARM 编写程序
查看>>
Oralce7和Oralce8里大对象的比较
查看>>
2011年存储行业重点厂商盘点---初志
查看>>
Activiti初学者教程
查看>>