1. 程式人生 > >【函數語言程式設計】reducer為什麼叫reducer

【函數語言程式設計】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()函式;