📅  最后修改于: 2023-12-03 15:40:10.096000             🧑  作者: Mango
Redux 是一个基于 Flux 架构的 JavaScript 状态管理库。它被广泛应用于 React 应用程序,但它可以与任何 JavaScript 程序一起使用。
Redux 简化了复杂应用程序中的状态管理。它是一个预测性的状态机,使得应用程序状态变得透明和易于调试。
Redux 提供了一个单一的、可预测的状态树,它是通过一个称为“reducer”的纯函数来更新的。这个reducer接收一个旧状态和一个描述指定操作的动作(一个纯对象),并返回一个新状态。
在 Redux 中,应用程序中的任何数据都存储在一个状态容器中。Redux 应用程序可以通过派遣一个带有有助于更改应用程序状态的有效负载的动作来更新状态。
这种方式有利于到达单向数据流,使代码更易于理解和调试。
Redux 是基于 Flux模式,但Redux的功能和设计哲学使其比 Flux 更加强大和灵活。
Redux提供了全面的工具和API,而且配合React使用时,能带来非常强大的编程体验。
下面我们来看一个 Redux 的示例代码:
import { createStore } from 'redux'
// 定义 reducer
function counter(state = 0, action) {
switch (action.type) {
case 'INCREMENT':
return state + 1
case 'DECREMENT':
return state - 1
default:
return state
}
}
// 创建 store
let store = createStore(counter)
// 打印初始状态
console.log(store.getState())
// 监听每次 dispatch 时,打印日志
let unsubscribe = store.subscribe(() =>
console.log(store.getState())
)
// 发起 action,更新 state
store.dispatch({ type: 'INCREMENT' })
store.dispatch({ type: 'INCREMENT' })
store.dispatch({ type: 'DECREMENT' })
// 停止监听 state 更新
unsubscribe()
这个简单的示例代码说明了 Redux 的基本用法。
我们首先定义了一个 reducer 函数,它接收一个旧状态和一个动作对象作为参数,并返回一个新状态。
然后,我们通过 createStore() 函数创建一个存储容器,并将 reducer 绑定到它上面。
我们通过 store.dispatch() 函数来发起一个 action,用于更新状态。store.subscribe() 函数用于注册回调,以便在状态更改时更新 UI。
总而言之,Redux 是一个非常有用的 JavaScript 库,它可以使状态管理更加直观、可预测和易于调试。如果你正在构建一个大型应用程序,Redux 绝对值得一试。