同过封装Select组件,逐步学习和思考组件封装思想

纯函数

给定相同的输入,它总是返回相同的输出;

过程没有副作用(side effect)

  • 纯函数中我们不能改变外部状态
  • Immutable概念,让参数中的引用重新复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import '_' from 'lodash';
    const addToCart = (cart, item, quantity) => {
    const newCart = _.cloneDeep(cart);
    newCart.items.push({
    item,
    quantity,
    });
    return newCart;
    };

没有额外的状态依赖。

  • 方法内的状态都只在方法的生命周期内存活,这意味着我们不能在方法内使用共享变量,因为这会给方法带来不可知因素。