Redux-Saga vs Redux-Thunk

Redux-Saga与Redux-Thunk对比

Redux异步中间件
Redux-Thunk
Redux-Saga
基于函数\n简单直接
基于生成器函数\n声明式Effects

⭐ 核心区别对比表

特性 Redux-Thunk Redux-Saga
实现原理 函数返回函数 生成器函数
复杂度 简单直接 较为复杂
功能强大度 基础功能 丰富功能
副作用处理 命令式 声明式
测试难度 较难(需mock) 较易(纯函数)
学习曲线 平缓 陡峭
适用场景 简单异步逻辑 复杂异步流程

🌟 实现原理详解

Redux-Thunk

// Redux-Thunk核心实现(仅10行左右)
function createThunkMiddleware(extraArgument) {
   
   
  return ({
    
     dispatch, getState }) => next => action => {
   
   
    if (typeof action === 'function') {
   
   
      return action(dispatch, getState, extraArgument);
    }
    return next(action);
  };
}
// 使用Redux-Thunk的异步Action
const fetchUser = (userId) => {
   
   
  // 返回一个函数而非普通action对象
  return async (dispatch, getState) => {
   
   
    dispatch({
   
    type: 'FETCH_USER_START' });
    
    try {
   
   
      const response = await fetch(`/api/users/${
     
     userId}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值