【Redux】实现createStore方法

Store提供了三种方法:

	store.getState()
	store.dispatch()
	store.subscribe()

具体实现:

	const createStore = (reducer) => {
	  let state;
	  let listeners = [];
	
	  const getState = () => state;
	
	  const dispatch = (action) => {
	    state = reducer(state, action);
	    listeners.forEach(listener => listener());
	  };
	
	  const subscribe = (listener) => {
	    listeners.push(listener);
	    return () => {
	      listeners = listeners.filter(l => l !== listener);
	    }
	  };
	
	  dispatch({});
	
	  return { getState, dispatch, subscribe };
	};

猜你喜欢

转载自blog.csdn.net/sjs1995/article/details/108625101