1.什么是Redux?
在redux官网中,redux是JavaScript状态容器,可以提供可预测的管理状态。
redux不仅可以和react框架结合使用,还支持其他的界面库,并且体积小,只有2kb
2.Redux的三大原则
1.唯一数据源:整个应用中的数据存储在一个统一的数据树中,也就是公共的store文件中,我们的所有组件都会在这个store中获取数据。
2.只读状态:state是只读的,我们只能通过触发action来改变state,action是一个用于描述发生时间的普通对象。
3.只能通过纯函数执行:在这里我们引入一个新的概念 '纯函数',纯函数不会对外部造成影响,它返回的结果只依赖于它的参数,并且在执行过程中没有副作用。redux通过纯函数来执行修改,所以我们需要编写reducers。
3.Redux工作原理
1.Store(存储器):redux中所有的数据都存储在一个称为'store' 的对象中,Store是应用的唯一数据源,它保存了整个应用的状态。
2.State(状态):State是redux应用的状态,它是一个普通的JavaScript对象,用于描述应用的数据和状态,State是只读的,不可以直接修改。
3.Action(动作):在redux中,状态的改变必须通过一个称为'action'的纯净对象来触发,Action是对状态变化的描述,包含一个type字段来表示要执行的动作类型。
4.Reducer(归纳器):reducer是一个纯函数,负责处理状态的跟新,当一个action被触发时,redux会将当前的state和action传递给reducer函数,reducer接收到这些参数,并根据action的类型来处理这些状态的更新,并返回一个新的state对象
5.Dispatch(派发):派发时指将action分发到reducer的过程,通过调用dispatch方法并传入一个action对象,redux会将该action发送给reducer进行处理,并更新应用的状态。
6.订阅和监听:redux提供了一种机制来订阅状态的变化,通过调用store.subscribe(listener)方法,可以注册以一个监听器(listener)来影响状态的变化。