redux原始碼分析(三) 原始碼部分

2021-08-14 16:27:35 字數 757 閱讀 3295

下面是每個部分的一些解讀

-createstore

apicreatestore(reducer, [initialstate], enhancer),曾經非常好奇這個函式的第二個引數到底是initialstate還是enhancer,因為見過兩種寫法都有的,以為是版本問題。看了原始碼才發現,都可以的。如果你不提供初始的state,可以直接把enhancer作為第二個引數傳進去,這也是正常的

//api

....

import

* as todoactioncreators from './todoactioncreators';

... render()

// 在子元件中直接 this.props.addtodo() 就相當於平時的 dispatch(addtodo())這樣了

return (

/>

);

若提供了enhancer則可對store進行一些增強

if (typeof enhancer !== 'undefined') 

return enhancer(createstore)(reducer, preloadedstate)

}

預設情況下action必須是簡單物件而不能是函式,需要實現非同步action時需要借助redux-thunk這個中介軟體才能來dispatch乙個函式

Redux原始碼分析之createStore

redux原始碼分析之基本概念 redux原始碼分析之createstore redux原始碼分析之bindactioncreators redux原始碼分析之combinereducers redux原始碼分析之compose 接著前面的,我們繼續,開啟createstore.js,直接看最後,c...

Redux原始碼解析

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

redux原始碼解讀

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