美文网首页
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