const createStore = (reducer,presetState, enhancer) => {
if (typeof presetState === "function") {
enhancer = presetState
presetState = undefined
}
if (typeof enhancer === 'function') {
return enhancer(createStore)(reducer,presetState)
}
if (typeof reducer !== "function") {
throw new Error('传入的reducer不是一个函数')
}
let state = presetState
let listeners = []
const getState = () => state
const dispatch = (action) => {
state = reducer(state, action)
listeners.forEach(item => item())
}
const subscribe = (fn) => {
listeners.push(fn)
}
dispatch({type:'@@react/Init'})
return {
getState,
dispatch,
subscribe
}
}
转载于:https://www.cnblogs.com/CoderZX/p/10782727.html
Redux Store 创建详解
本文深入解析了 Redux 中 createStore 函数的实现原理,包括参数处理、状态管理、监听器注册及初始化 dispatch 的流程。通过源码解读,帮助读者理解 Redux 状态管理的核心机制。
2500

被折叠的 条评论
为什么被折叠?



