新手小白,第一次編寫拆火,就是簡單的理解一下我眼中的Redux,也當保留一下筆記涂圆。
具體的講解可以參考文檔:Redux 中文文檔
? ? Redux是一個狀態(tài)管理工具们镜,用來管理應用中的數(shù)據(jù)。
? ??在使用Redux的應用中润歉,所有的state都以一個對象樹的形式存儲在單一store中模狭,唯一改變state的辦法是觸發(fā)action,action如何改變state樹踩衩,則需要編寫reducers嚼鹉。
? ??
核心:
? ? store:store是一個JavaScript對象,store的作用是連接 actions 和 reducer ?驱富,它保存了整個應用的state锚赤。
? ? ? ? · Redux應用只能有一個store ? ?
? ? ? ?· 允許通過getState()訪問state數(shù)據(jù)
? ? ? ?· 通過dispatch(action)改變state
? ? ? ?· 通過subscribe(listener) 注冊回調(diào)函數(shù),監(jiān)聽state改變
Action: action把數(shù)據(jù)從應用傳遞到了store褐鸥,它是store數(shù)據(jù)的唯一來源线脚,通過dispatch()將action傳到了store。action就是一個單純的包含type,payload的對象浑侥。 type是一個常量又憨,可以自己定義,用來表示動作類型锭吨。payload是這個動作攜帶的數(shù)據(jù)蠢莺。 action必須提供一個type屬性,表示當前動作的標識零如。
Reducer:reducer指定了應用狀態(tài)的變化如何響應actions并發(fā)送到store的躏将,action只是描述了有事情發(fā)生了這一事實,并沒有描述應用如何更新state考蕾,更新state的函數(shù)成為reducer祸憋,它是一個純函數(shù),接收舊的state和action肖卧,返回新的state
? ? reducer也就是根據(jù)action行為蚯窥,執(zhí)行相應的邏輯操作,更新state塞帐。reducer有兩個參數(shù)拦赠,第一個參數(shù)表示狀態(tài)(數(shù)據(jù)),要給初始狀態(tài)設置默認值葵姥,第二個參數(shù)表示action行為荷鼠。
以上就是我對redux的理解,不足之處榔幸,多多指教