理解:
redux是一个用于管理JavaScript应用程序状态的可预测状态容器,它是一个独立于任何特定UI库的状态管理库,但在React应用中广泛使用。
工作原理可以概括为一下几个关键概念:
1. store(存储) : redux应用的状态(State)被存储在一个单一的Javascript对象中,称为store。它是应用中所有状态的唯一来源。
2.action(动作) : action是一个描述状态变化的普通的JavaScript对象,它必须包含一个type属性,用于指示要执行的动作类型。其他属性可以根据需要自定义,用于传递与动作相关的数据。
3.reducer(归约器):reducer是一个纯函数,它接受当前的状态和一个action作为参数,并返回一个新的状态,reducer根据action的类型来决定如何更新状态,纯函数即是相同的输入,始终返回相同的输出,而且不应该有任何副作用。
4.dispatch(派发) : dispatch是一个函数,用于将action发送到reducer,以触发状态的更新。当应用中某个组件需要更新状态时,它会调用dispatch函数并传递给一个action对象
5.subscribe(订阅) : 通过订阅,可以在状态发生变化时得到通知,当状态发生变化时,redux会调用所有已注册的订阅函数,更UI
工作流程:
1.组件通过dispatch函数派发一个action。
2.redux store 接收到action,并将其传递给reducer
3.reduce根据action的类型来更新状态,并返回 一个新的状态。
4.redux store将新的状态保存起来
5. redux store 通知所有已注册的订阅函数,以便更新函数的UI