天天看點

React-Redux-三大原則

Redux 三大原則

單一資料源

  • 整個應用程式的​

    ​state​

    ​​ 隻存儲在一個​

    ​store​

    ​ 中
  • Redux 并沒有強制讓我們不能建立多個​

    ​Store​

    ​,但是那樣做并不利于資料的維護
  • 單一的資料源可以讓整個應用程式的​

    ​state​

    ​ 變得友善維護、追蹤、修改

State 是隻讀的

  • 唯一修改 State 的方法一定是觸發​

    ​action​

    ​,不要試圖在其他地方通過任何的方式來修改 State;
  • 這樣就確定了 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​​

繼續閱讀