# 最佳实践

# 纯函数

什么是纯函数?

纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何观察的副作用。

通俗来讲,就两个要素

  1. 相同的输入,一定会得到相同的输出

  2. 不会有"触发事件",更改输入参数,依赖外部参数,打印log等等副作用

    // 不是纯函数,因为同样的输入,输出结果不一致
    function a(count) {
      return count + Math.random();
    }
    
    // 不是纯函数,因为外部的arr被修改了
    function b(arr) {
      return arr.push(1);
    }
    const arr = [1, 2, 3];
    b(arr);
    console.log(arr); // [1, 2, 3, 1]
    
    //不是纯函数,因为依赖了外部的 x
    const x = 1;
    function c(count) {
      return count + x;
    }
    

我们的reducer计划函数,就必须是一个纯函数!

只要传入参数相同,返回计算得到的下一个state就一定相同。没有特殊情况、没有副作用,没有API请求、没有变量修改,单纯执行计算

最近更新时间: 2020/5/26 19:03:58