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 在很多情況下,基類本身生成...