
文章目录Redux6万 Star 的 JS 全局状态管理库Redux6万 Star 的 JS 全局状态管理库Redux 是一个用于 JavaScript 应用的全局状态管理库拥有超过 61,000 的 StarRedux 的核心目标是让应用的状态变化变得可预测。它通过单一数据源、纯函数 reducer 和不可变更新这三个机制把散落在各组件里的状态收拢到一个统一的 store 中。核心概念Redux 的工作流程很清晰组件 dispatch 一个 action 描述发生了什么reducer 根据 action 和旧状态计算出新状态store 持有最新的状态树并通知订阅者更新。整个过程是单向数据流任何状态变更都可追溯。配合 Redux DevTools可以做到时间旅行调试逐步回放每一次状态变化。Redux ToolkitRedux 官方推荐使用 Redux Toolkit 来编写 Redux 逻辑。Redux Toolkit 对核心库做了封装内置了 createSlice、configureStore 等常用 API省去了手写 action types、action creators 和 switch-case reducer 的繁琐流程。用 Redux Toolkit 写一个计数器核心代码如下import{createSlice,configureStore}fromreduxjs/toolkitconstcounterSlicecreateSlice({name:counter,initialState:{value:0},reducers:{incremented:state{state.value1},decremented:state{state.value-1}}})conststoreconfigureStore({reducer:counterSlice.reducer})Redux Toolkit 内部使用 Immer 处理状态更新所以 reducer 里可以直接写看似修改的代码实际上生成的是新的不可变状态对象。体积与生态Redux 核心库仅 2kB含依赖非常轻量。在此之上有完整的生态React-ReduxReact 组件与 Redux store 的绑定层Redux DevTools浏览器插件支持状态检查、时间旅行、action 日志RTK Query内置的数据获取和缓存方案可替代手写 thunk 调用什么时候该用 ReduxRedux 官方文档明确提到不需要在所有场景下都用 Redux。适合使用的典型情况包括应用中有大量随时间变化的数据需要一个单一可信源来管理状态顶层组件已经无法容纳所有状态的传递对于小型应用React 自带的 Context useReducer 可能已经够用。Redux 更适合中大型项目尤其是多人协作、状态逻辑复杂的场景。安装使用 Redux Toolkit推荐方式npminstallreduxjs/toolkit react-redux如果只需要 Redux 核心库npminstallredux项目模板方面Redux 官方提供了基于 Vite 的 ReduxTS 模板也支持通过 Next.js 的 with-redux 模板快速搭建项目。学习资源Redux 官方文档redux.js.org提供了两套教程Redux Essentials 是自顶向下的实战教程教你怎么用Redux Fundamentals 是自底向上的原理教程讲 Redux 的工作机制。对于刚接触 Redux 的开发者建议从 Essentials 入手。ux Fundamentals 是自底向上的原理教程讲 Redux 的工作机制。对于刚接触 Redux 的开发者建议从 Essentials 入手。