参考之前这篇文章里面的案例   我们做一下redux的封装

Redux的基本使用_湖边看客的博客-CSDN博客

在案例中  我们用到了  一下三个方法

结合发布订阅的原理 

代码如下:

function createQvStore(reducer) {
    var list = []
    //第一次调用reducer
    var state = reducer(undefined, {})

    //订阅    
    function subscribe(callback) {
        list.push(callback)
    }

    //发布
    function dispatch(action) {
        //第二次调用reducer   会覆盖 初始的值
        state = reducer(state, action)

        for (var i in list) {
            list[i] && list[i]()
        }
    }

    //拿数据
    function getState() {
        return state
    }

    return {
        subscribe,
        dispatch,
        getState
    }
}

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐