前端/移动开发面试题更新 2026-08-05

在 Redux 中,中间件函数接收哪些参数?当采用柯里化写法时,其两端参数分别代表什么含义?

前端/移动开发技术原理Redux

考察说明

考查对 Redux 中间件函数签名及柯里化机制的理解。

回答思路

  1. 【回答框架 1】Redux 中间件是一个柯里化函数,形式为 ({ getState, dispatch }) => next => action => {...}。最外层函数接收包含 getState 和 dispatch 的对象,用于访问状态和发起新的 dispatch。
  2. 【回答框架 2】中间层参数 next 是下一个中间件或 store 的 dispatch,调用 next(action) 将 action 传递给后续处理链。最内层接收 action,在此可进行日志、异步等处理,处理完后调用 next(action) 或 dispatch(action)。
  3. 【回答框架 3】柯里化的好处是便于组合和延迟执行:外层在中间件应用时立即调用,中间层在 store 创建时传入,内层在每次 dispatch 时执行。
  4. 【关键点 1】中间件接收 ({ getState, dispatch }) 作为参数。
  5. 【关键点 2】柯里化的两端参数是 next 和 action。
  6. 【关键点 3】next 用于传递 action 到下一个中间件或 reducer。
  7. 【易错点 1】不要混淆 next 和 dispatch,next 是中间件链的传递函数,dispatch 能重新分发 action。
  8. 【易错点 2】不要在中间件中直接调用 getState 后修改状态,应通过 reducer 更新。