react中使用immutable
官方文档(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
最新文章
- G将军的敢死队——树状DP
- Table of Contents ---BCM
- 如何在两个activity之间传递bitmap
- Outlook Web App简介
- P6 EPPM R16.1安装与配置指南(三)
- Xcode6.4注册URL Scheme步骤详解
- HDU 1247 Hat’s Words(map,STL,字符处理,string运用)
- 一道模板元编程题源码解答(replace_type)
- GetSystemMetrics() 函数的用法
- 运用JavaScript构建你的第一个Metro式应用程序(on Windows 8)(一)
- 初识Dubbo 系列之4-Dubbo 依赖
- sql server统计字段的值在某些范围内中的个数
- poj 3628 Bookshelf 2 基本01背包
- linux系统日常管理复习题讲解
- 每CPU变量
- day8-基础函数的学习(三)
- PCA降维参数介绍
- Swift - 修改导航栏“返回”按钮文字和图标 /手势冲突解决/响应范围
- IndexDB 操作util
- Archlinux软件包管理pacman基本使用说明