简易的redux实现
dispath方法
getState方法
subscribe方法
//简易的redux实现
function MyRedux(reducers) {
//这里是createStore第一次调用时,调用reducers
const state = reducers(undefined, {})
//这里是存储订阅的函数
const callbacks = []
//dispath方法 发布
function dispatch(action) {
reducers(state, action)
callbacks.forEach(item => {
item && item()
})
}
//subscribe方法 订阅
function subscribe(callback) {
callbacks.push(callback)
}
//获取状态的getState方法
function getState() {
return state
}
return {
dispatch,
getState,
subscribe
}
}