immutable 需要在 state 里使用吗

来源:7-9 使用 Immutable.js 来管理store中的数据

诺巴蒂

2019-12-18

  1. 如果 state 里有 数组或对象类型需要用 immutable 转成 list 或者 map 吗?
  2. 对于自定义类实例,immutable 好像不会转换,这时候还是可以 通过 obj.xx 进行操作,这个需要处理吗?
  3. 因为现在没有 componentWiiReciveProps 这个钩子了,所以如果我想实现 某个 list 更新时进行一些操作,会采用 通过 state 存储一份 数据,然后用 static getDerivedStateFromProps 进行比较,如果发现不一样,就在 componentDidUpdate 就行更新等操作,这个做法正确吗?
    这里用 immutable 的 is 方法深比较还是 直接采用 === 比较好一些,因为 immutable 类型数据改变肯定会改变地址。
  static getDerivedStateFromProps(props, state) {
    // 判断数据是否发生改变,需要刷新
    if (props.data !== state.data) {
      return {
        data: props.data,
        isNeedRefresh: true,
      };
    }
    return null;
  }
  
  componentDidUpdate() {
    if (this.state.isNeedRefresh === true) {
      this.refresh();
    }
  }
	refresh() {
		// do something
		this.setState({isNeedRefresh: false})
	}
  1. 如果使用 ts 还要用 immutable 吗
写回答

1回答

Dell

2019-12-22

  1. 如果有必要提升性能可以这么做。

  2. 需要toJS处理

  3. 没问题,建议使用===

0
2
诺巴蒂
希望您下个课可以用ts重写一下这个项目
2019-12-23
共2条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程