贝利信息

什么是状态管理_javascript中redux怎么用?

日期:2025-12-16 00:00 / 作者:夢幻星辰
Redux是JavaScript中成熟的状态管理库,核心遵循单一数据源、状态只读、纯函数更新三原则;现代开发推荐使用Redux Toolkit简化流程,适用于多组件共享状态、逻辑复杂或需调试回溯的场景。

状态管理,简单说就是统一管好应用里所有“会变的数据”——比如用户是否登录、购物车里有几件商品、列表正在加载还是出错了。这些数据叫“状态(state)”,散落在各个组件里容易混乱、难同步、难调试。Redux 就是 JavaScript 中一个成熟的状态管理库,它不绑定 React,但和 React 配合最常见。

Redux 的核心思路很清晰

它坚持三件事:

用 Redux 的基本步骤(以现代写法为主)

现在推荐用 Redux Toolkit(RTK),它大幅简化了传统 Redux 的样板代码,官方也默认推荐。

一个计数器的最小完整例子

比如实现 +1 / -1 功能:

import { createSlice } from '@reduxjs/toolkit'

const counterSlice = createSlice({ name: 'counter', initialState: 0, reducers: { increment: state => state + 1, decrement: state => state - 1, } })

export const { increment, decrement } = counterSlice.actions export default counterSlice.reducer

import { configureStore } from '@reduxjs/toolkit'
import counterReducer from '../features/counter/counterSlice'

export const store = configureStore({ reducer: { counter: counterReducer, } })

import { useSelector, useDispatch } from 'react-redux'
import { increment, decrement } from '../features/counter/counterSlice'

function Counter() { const count = useSelector(state => state.counter) const dispatch = useDispatch()

return (

{count}

) }

什么时候真该用 Redux?

别一上来就上。它适合:

如果只是单个组件内部状态,或父子组件传几层 props 就能解决,用 useStateuseReducer 更轻量。

基本上就这些。Redux 不复杂,但容易忽略“为什么需要它”这个前提。