Redux Reducer 純函式和拆分

2021-10-06 18:06:04 字數 1056 閱讀 7925

reducer一定要是純函式,所謂純函式,即就是只要函式的

呼叫引數相同,就永遠返回相同的結果。乙個純函式,它返回的結果

往往是可以根據引數精確**的。

要實現純函式,只要做到:

不修改入參

不執行有***的操作(修改函式之外的其他變數、api呼叫等)

不呼叫其他非純函式(date.now())

保證純函式的原則,則每當我們dispatch乙個相同的action,且初狀態相同,則

總是能得到乙個相同的結果(狀態變化),因此可以實現redux的時間旅行功能。

redux的原則之一是整個應用只有乙個store,為了避免store變得十分龐大,

可以首先讓需要用到redux的模組擁有自己的reducer,然後使用redux提供的 combinereducers()

在根reducer中把這些reducers組合起來,比如:

模組detail、header等擁有自己的reducer,它處理自己的actions,在根reducer中,我們這樣編寫:

import

from

'redux-immutable'

;//資料拆分

import

from

'../common/header/store'

;import

from

'../pages/home/store'

;import

from

'../pages/detail/store'

;import

from

'../pages/login/store'

;const reducer =

combinereducers()

;export

default reducer;

注:由於我的state均為immutable物件,所以引入了redux-immutable的combinereducers方法,如果是普通物件,

直接從redux中引入即可。然後在根store中以這個 reducer 來 createstore 即可。

純函式,快取函式

不純的函式具有 下面以之前的計稅函式以例進行說明 var percentvalue 5 var calculatetax value 複製 這個函式不是純函式,主要因為它以來外部環境計算其邏輯,當外部環境改變時,它會影響結果。因此,純函式的主要特徵就是不依賴於任何外部變數,也不應該改變任何外部變數。...

python純函式 Numpy純函式的效能,快取

這些函式已經存在於scipy中。sigmoid函式可用作 in 36 from scipy.special import expit 將expit與向量化乙狀結腸功能進行比較 in 38 x np.linspace 6,6,1001 in 39 timeit y sigmoid x 100 loop...

虛函式 純虛函式

一 定義.純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加 0 virtual void funtion1 0 二 引入原因 1 為了方便使用多型特性,我們常常需要在基類中定義虛函式。2 在很多情況下,基類本身生成...