Redux 三大原則
單一資料源
- 整個應用程式的
隻存儲在一個
state
中
store
- Redux 并沒有強制讓我們不能建立多個
,但是那樣做并不利于資料的維護
Store
- 單一的資料源可以讓整個應用程式的
變得友善維護、追蹤、修改
state
State 是隻讀的
- 唯一修改 State 的方法一定是觸發
,不要試圖在其他地方通過任何的方式來修改 State;
action
- 這樣就確定了 View 或網絡請求都不能直接修改 state,它們隻能通過 action 來描述自己想要如何修改 stat;
- 這樣可以保證所有的修改都被集中化處理,并且按照嚴格的順序來執行,是以不需要擔心 race condition(竟态)的問題;
使用純函數來執行修改
- 通過 reducer 将舊 state 和 action 聯系在一起,并且傳回一個新的 State;
- 随着應用程式的複雜度增加,我們可以将 reducer 拆分成多個小的 reducers,分别操作不同 state tree 的一部分;
- 但是所有的 reducer 都應該是純函數,不能産生任何的副作用
什麼是純函數
- 傳回結果隻依賴于它的參數,并且在執行過程裡面沒有副作用
純函數
function sum(num1, num2){
return num1 + num2;
}
const num1 = 10;
function sum(num2){
return num1 + num2;
}
非純函數
let num1 = 10;
function sum(num2){
return num1 + num2;
}
官方文檔:https://www.redux.org.cn/docs/introduction/ThreePrinciples.html