• immutable.js使用总结


    1. immutable相当于 JSON.parse 和 JSON.stringify;

    2.引入redux中,除了

    在最外层 reducer中  import { combineReducers } from 'redux-immutable'; 

    涉及到修改 (1)reducer 两个文件  (2)组件

    2.1 对于reducer:

    首先对默认状态:

    import { fromJS } from 'immutable';
    const defaultState = fromJS({ 'requireFlag':true })

    对于简单的处理state,直接return即可:

    case actionTypes.CHANGE_MORE_FLAG:
           return  state.set('requireFlag',!state.get('requireFlag'));

    对于需要复杂处理的,一般将state传入自定义函数,最后返回:

    export default (state=defaultState, action)=>{
      switch (action.type) {
        case actionTypes.INIT_LISTS:
          return handleInitList(state,action);
      }
    }
    
    const handleInitList = (state,action)=>{
        state.get('nav').map((item,index)=>{ //所有涉及到获取state,使用get方法,这里改变了state
          item.checked = false;
        });
        state.set('page',1);   //后续改变其他值,单个是使用 state.set('page',1)
        return state.merge({   //改变多个值,需要使用merge函数,最后一定要 return出 merge函数
          activeIndex:action.tabIndex,
          cardId:action.cardId,
        })
        //return state;  不要使用merge之后,在这里return state
    }

     数组合并:

     state.get('lifeRights').concat(action.initData.lifeRights); 

    2.2 组件:

    function mapStateToProps(state, ownProps) {
      return {
        userStatus:state.getIn(['bottom','userStatus']),  //注意此处有 中括号,第一个 reducer的名字
      } 
    }

    如果该reducer中 只有一层级,如reducer中的状态定义为:

     const defaultState = fromJS([]) 

    则在组件中调用使用 get : rightsList: state.get('hotRight') 

  • 相关阅读:
    jmeter-可视化的非GUI模式
    深度剖析阶梯负载与最终请求数
    安全测试基础2-sqlmap演练
    百度压测,分析性能拐点
    性能测试-服务端瓶颈分析思路
    性能测试中的常见异常分析(转载整理)
    jmeter_遍历转换浮点时间戳
    性能测试-实例讲解VU、RPS、RT公式换算
    利用Docker安装Web前端性能测试工具Sitespeed.io
    基于 Jmeter 的 web 端接口自动化测试平台(转载)
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/10559561.html
Copyright © 2020-2023  润新知