redux 包含初始state、reducers 和action。
reducers是用来更新state的,action代表reducers的type。
react-redux通过Provider向组件中注入store。但是想要在每个叶子组件中使用或者获取store,还是需要通过connect绑定。
当在组件中调用dispatch,那么会扫描所有reducers,将要处理的state处理完成。
组件中的connect实际上是subscribe的过程,会维护一个listeners数组,这里面存放所有的store的订阅者。当state有更新时,订阅了该state的listener就会触发更新操作,完成组件的更新渲染。
middlewave实际上是构建了一个洋葱模型,层层深入和层层冒泡的过程分别做了不同的工作,深入到最内层的时候执行了dispatch。
参考:https://juejin.cn/post/6844903846666321934