// mini-redux export function createStore(reducer) { //初始化state 和listeners函数 集合; let currentState={}; let currrentListeners=[]; // 调用返回state function getState() { return currentState; } // 调用返回state 把新的事件 push到listeners监听函数 集合 function subscribe(listener) { currrentListeners.push(listener); } function dispatch(action) { // 传入action 通过reducer得到新的state;并且赋给自己这个里面的state currentState=reducer(currentState,action); // 把所有的 监听事件调用一遍 currrentListeners.forEach(v=>v()); // 为了中间键的调用,所以return action出去; return action; } //自己调用一遍先,要把所有的方法执行一遍; dispatch({type:"@myself-SKY"}) //返回这三个核心方法以供调用。 return {getState,subscribe,dispatch} }
这只是基本的实现。