欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

打造简化版Redux与react-redux createStore 的快速入门指南

最编程 2024-07-26 07:05:49
...
function createStore(reducers, enhancer) {
    // 处理中间件
    if (enhancer) {
        return enhancer(createStore)(reducers)
    }
    // 唯一的store,数据的源头,包含多个state,有多少个reducer就有多少个state
    let store = {};
    // 初始化一下store的值
    store = reducers(store, {});
    
    // 存放订阅的回调
    const queques = [];
    function dispatch(action) {        
        // 这里会将reducers中所有reducer全跑一遍,只要是有这个type的,全都会执行
        store = reducers(store, action);
        // 将队列中所有注册的回调,全跑一遍
        queques.forEach(queque => queque());
    }
    // 只返回了当前store,快照
    function getState() {
        return store
    }
    // 只是将回调存了起来,并不会执行
    function subscribe(cb) {
        queques.push(cb)
    }
    return {
        dispatch,
        getState,
        subscribe
    }
}