1. let createStore = (reducer) => {
    2. let state;
    3. //获取状态对象
    4. //存放所有的监听函数
    5. let listeners = [];
    6. let getState = () => state;
    7. //提供一个方法供外部调用派发action
    8. let dispath = (action) => {
    9. //调用管理员reducer得到新的state
    10. state = reducer(state, action);
    11. //执行所有的监听函数
    12. listeners.forEach((l) => l())
    13. }
    14. //订阅状态变化事件,当状态改变发生之后执行监听函数
    15. let subscribe = (listener) => {
    16. listeners.push(listener);
    17. }
    18. dispath();
    19. return {
    20. getState,
    21. dispath,
    22. subscribe
    23. }
    24. }
    25. let combineReducers=(renducers)=>{
    26. //传入一个renducers管理组,返回的是一个renducer
    27. return function(state={},action={}){
    28. let newState={};
    29. for(var attr in renducers){
    30. newState[attr]=renducers[attr](state[attr],action)
    31. }
    32. return newState;
    33. }
    34. }
    35. export {createStore,combineReducers};