Redux原始碼createStore解讀常用方法

2021-10-09 00:27:29 字數 1378 閱讀 6220

const store =

createstore

(reducer,

[preloadedstate]

, enhancer)

;

直接返回當前currentstate,獲取state值,@return state(我覺得應該深轉殖乙個新的物件返回,不然有可能會被外部修改)

function

getstate()

// console.log(currentstate);

return currentstate;

}

執行派發行為,就會在內部執行reducer並且執行之前準備發布的函式listener ,@params action行為,@return action行為

function

dispatch

(action)if(

typeof action.type ===

'undefined')if

(isdispatching)

tryfinally

var listeners = currentlisteners = nextlisteners;

for(

var i =

0; i < listeners.length; i++

)return action;

}

redux發布訂閱

function

subscribe

(listener)

if(isdispatching)

var issubscribed =

true

;ensurecanmutatenextlisteners()

; nextlisteners.

push

(listener)

;//把函式壓入棧

return

function

unsubscribe()

if(isdispatching)

issubscribed =

false

;ensurecanmutatenextlisteners()

;var index = nextlisteners.

indexof

(listener)

; nextlisteners.

splice

(index,1)

;//刪除陣列裡面的函式,如果連續刪除容易造成陣列塌陷

currentlisteners =

null;}

;}

如果有錯,望大佬指出。。。

Redux原始碼解析

輸出 複製 這些函式會呼叫到閉包裡面的一些變數,如currentstate,currentreducer,currentlisteners。作用 將action和state傳入reducer並修改對應的state,並執行listeners陣列裡面的所有listener 核心就是這句 currents...

redux原始碼解讀

背景 因為就得去實習了。所以打算開始補補坑。比如自己閱讀原始碼的計畫。所以今天來聊聊redux的原始碼。後續會有redux thunk和react redux的原始碼閱讀。搞定這些的話,就開始閱讀乙個node的庫的原始碼了,比如eventproxy和anywhere。開始檔案看起來貌似不少,其實,要...

redux原始碼解析

關於redux的基本概念和工作流如何進行的這裡就不進行過多概述了,可以檢視相關文件去了解。流程圖鏈結 以下是redux的原始碼結構圖,主要的就是以下幾個檔案組成,我們接下來按順序進行介紹其中原理和實現過程。首先了解下createstore.js。通過呼叫createstore建立唯一的store,s...