【react】---手动封装一个简易版的redux---【巷子】
export let createStore = (reducer)=>{//定义默认的state
let state = {};
//定义默认的action
let actionTypes = "@@redux/INIT"+Math.random();
let initAction = {type:actionTypes}
//将所以需要监听的函数放在这个里面
let listeners = []
//定义getState函数
let getState = ()=>state;
//定义事件订阅函数
let subscribe = (cb)=>{
listeners.push(cb);
}
//定义事件派发函数 用来调用action
let dispatch = (action=initAction)=>{
//调用reducer获取新的state
state = reducer(state,action);
//遍历所以需要监听的函数
listeners.map((cb)=>{
cb();
})
}
dispatch();
return {
getState,
dispatch,
subscribe
}
}
const combineReducers = (reducers)=>{
let newState = {};
return function(state,action){
for(var key in reducers){
newState[key] = reducers[key](state[key],action)
}
return newState;
}
}
以上是 【react】---手动封装一个简易版的redux---【巷子】 的全部内容, 来源链接: utcz.com/z/381305.html