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 } }