【函数式编程】reducer为什么叫reducer

  最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux;

  抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必然是用户通过视图触发的称为action,然后redux收到action后通过reducer函数改变对象,然后对象导致视图渲染;其中提到一个问题,为何reducer命名为reducer呢?

  函数式编程:reduce函数为演绎高阶函数;例子如下:

const array = [1,2,3,4]
array.reduce((rul,cur)=>{rul=rul+cur;return rul;},0)

  其实reducer就是一个函数,它能作为reduce高阶函数的参数;也就是reducer负责演绎功能,对一连串视图发过来的action数组一个个作用下去;演绎出一个结果,就是最终的对象状态,所以该reducer的第一个参数是上一个对象state,而第二个参数就是当前的acrtion;

const actionArray = [a,b,c,d]
funtion reducer(state,action){//do something; return newState}

   掌握了函数式编程是很重要的,Java ,Python都有很好的函数式编程支持,如Java的stream,Python的filter()函数;

猜你喜欢

转载自www.cnblogs.com/iCanhua/p/10193582.html