Redux中CreateStore(reducer) 底层简单实现

本文介绍了一个JavaScript函数,用于创建一个类似Redux的状态管理store。它包括订阅者和发布者功能,允许开发者订阅状态变化并在action触发时更新state。这个简单的状态管理工具对于小型应用或者理解Redux原理非常有用。
摘要由CSDN通过智能技术生成
function createStore(reducer) {

  //设置一个空数组,存放订阅者返回的回调方法
  var list = []

  //先设置reducer初始值
  var state = reducer(undefined, {})

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

  //发布者
  function dispatch(action) {
    state = reducer(state, action)
    for (let i in list) {
      //list数组中第i个是否存在,是-执行
      list[i] && list[i]()
    }
  }

  //获取state方法
  function getState() {
    return state
  }

  return {
    subscribe,
    dispatch,
    getState,
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值