美文网首页
Immutable学习

Immutable学习

作者: 奋斗的小小小兔子 | 来源:发表于2018-07-17 18:04 被阅读8次

Immutable

为什么要使用Immutable

  1. JS使用引用赋值,新的对象简单引用了原始对象,改变新对象将会影响到原始对象。
  2. 使用深拷贝和浅拷贝会导致内存和CPU的浪费。

Immutable优势

  1. Immutable对象进行修改、添加、删除的操作都会返回一个新的对象,同时保持旧对象可用且不变。
  2. 为了避免深拷贝把所有节点都复制一遍带来的性能损耗,Immutable使用结构共享,即:如果对象树中一个节点发生变化,只修改这个节点和受他影像的父节点,其他节点进行共享。

API介绍

  1. fromJS(value, converter)
    是将一个JS数据转化为Immutable类型的数据。value是要转变的数据,converter是要做的操作。 默认会将数组转化为List类型,将对象转换为Map类型,其余不作操作。
  1. value.toJS()
    将一个Immutable数据转换为Js类型的数据。

  2. is(map1, map2)
    js中比较两个对象的地址,在Immutable中比较的是这个对象的hashCodevalueOf,只要两个对象的hashCode相等,值就相同,避免深度遍历,提高性能。

import Immutable from 'immutable';

const m1 = Immutable.fromJS({ a: '1', b: '2' });
const m2 = Immutable.fromJS({ a: '1', b: '2' });
console.log('m1', m1 === m2);  // false
console.log('m2', Immutable.is(m1, m2)); // true

相关文章

网友评论

      本文标题:Immutable学习

      本文链接:https://www.haomeiwen.com/subject/jaugpftx.html