redux它是一个单独的状态管理工具,它是一个数据集中管理的方案。简单来说,就是将公用的数据,放在redux里面进行存储,修改的时候也是利用redux提供的方法来修改,让框架使用的数据的时候更方便,维护起来更容易,redux提供了一下核心内容:
1 store.
store是redux的核心内容,整个redux的仓库,所有的应用方法都是由store提供 。
2 createStore
createStore用来创建store的,方法里面有三个参数,有reducer,有中间件,还有初始值,最重要的就是reducer函数,它提供了整个数据管理的逻辑 。
3 reducer(state, action)
reducer函数相当于数据加工厂,初始的数据,修改数据的 逻辑都统统的在这里完成,它让我们整个的数据走向更完成,维护更方便 。
4 action
action 本质是一个对象,它来告诉 redux 要执行什么任务。
5 state
state它就是我们需要存储的redux的数据,所有的数据都将要在这里面存储 。
6 store.getState()
它就是用来获取数据的,每次修改前后的数据都可以用store.getState()来修改 。
7 store.dispatch(action)
用户通过dispatch出发要执行的任务,这个就是出发动作,然后reducer函数会执行,然后进行数据加工。
8。store.subscribe(callback)
会自动的监听state,一旦有state发生改变,store.subscribe就会还行,利用它可以用来更新视图。
另外:
作为新手,react+hooks先用起来
需要单页了。router搞起来
需要 ui了,antd搞起来
最复杂的是数据流,用到这步你会感受到,props在传值通讯上有点不爽,什么兄弟传值,爷孙传值,曾孙传值,跨页面传值。这个时候,你也可以层层传递,但是感觉麻烦,于是有另一种思路,用发布订阅模式。但是仍然有点不爽。
社区提供的最好解是redux,配合的库是react-redux,redux,react-redux-router.而redux解决的是同步的,异步的里面是thunk胜出。