【react】---手动封装一个简易版的redux---【巷子】

react

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

回到顶部