搜索

首页  >  问答  >  正文

javascript - immutable配合react提升性能?

直接PureComponent那样浅比较不就完了吗;
我觉得极少存在state引用改变而实际的值不发生改变

学习ing学习ing2747 天前907

全部回复(3)我来回复

  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:40:52

    我觉得immutable的好处是不可变,不会出现在其它地方被意外更改值的情况。还有可以快速比较,不需要一层一层的检查。

    回复
    0
  • 欧阳克

    欧阳克2017-07-05 10:40:52

    我觉得immutable的好处确实有,不可变、两对象比较都能在一定程度上提高性能。但是这种比较适合需要复杂数据结构同时频繁数据操作。
    如果对于一般的场景,只是增加了复杂度、文件大小。比如获取对象属性const obj = {a: 1, b: 2, c: 3}

    普通方式:

    const {a, b, c} = obj;

    immutable:

    const a = obj.get('a');
    const b = obj.get('b');
    const c = obj.get('c');

    而且如果是复杂场景,我们会使用redux,因为redux本身数据处理就是不可变,所以immutable也不适用。

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:40:52

    严格说起来immutable转换数据还会带来性能损耗。
    API很方便的可以对于非常深层数据的对比跟修改操作

    reducer.js

    [actions.UPDATE_PROJECT_LIST_AFTER_DELETE]: (state, { data }) => {
      let index = data.index
      return state.updateIn(['dataList',index,'status'], () => 'Deleted')
    }

    回复
    0
  • 取消回复