export let createStore = (reducer)=>{
//定义默认的state
let state; //定义默认的action
let actionTypes = "@@redux/INIT"+Math.random();
let initAction = {type:actionTypes} //将所以需要监听的函数放在这个里面
let listeners = [] //定义getState函数
let getState = ()=>state; //定义事件订阅函数
let subscribe = (cb)=>{
listeners.push(cb);
} //定义事件派发函数 用来调用action
let dispatch = (action=initAction)=>{ //调用reducer获取新的state
state = reducer(state,action); //遍历所以需要监听的函数
listeners.map((cb)=>{
cb();
}) }
dispatch(); return {
getState,
dispatch,
subscribe
}
}
 

最新文章

  1. JS原生第七篇 (帅哥)
  2. 微软2017校招笔试题2 composition
  3. 1.struts2开发流程
  4. hdu----(1671)Phone List(Trie带标签)
  5. Android 实现自动接听和挂断电话功能
  6. java定时任务接口ScheduledExecutorService
  7. C++ Primer 随笔 Chapter 4 数组和指针
  8. hdu1166 经典线段入门
  9. hihoCoder #1234 : Fractal(数学简单题)
  10. Linux学习记录--匿名沟通渠道
  11. 201521123074 《Java程序设计》第4周学习总结
  12. 百度编辑器的内容改变事件监听bug
  13. yum安装puppet
  14. 带着新人学springboot的应用13(springboot+热部署)
  15. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
  16. python队列queue 之优先级队列
  17. Nodejs学习资源汇总
  18. Oracle插入(insert into)
  19. 基于canvas实现的fontawesome动态图标
  20. Selenium with Python 010 - unittest 框架(又称PyUnit 框架)

热门文章

  1. IDEA中执行MAVEN命令打jar包
  2. ubuntu快速部署gitlab汉化容器
  3. Long Long Ago 二分查找
  4. Ubuntu 16.04.3 安装jenkins
  5. .Net Core Web/Console 下使用Nlog
  6. [NOI2018]你的名字
  7. ES6---箭头函数()=>{} 与function的区别(转载)
  8. 在命令行输入python出现“Warning:This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.
  9. numpy库补充 mean函数应用
  10. mac中如何卸载pkg包