账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    redux里compose函数源码看不太懂
    51
    0

    下面是Redux里compose方法源码:

    export default function compose(...funcs) {
      if (funcs.length === 0) {
        return arg => arg
      }
    
      if (funcs.length === 1) {
        return funcs[0]
      }
    
      const last = funcs[funcs.length - 1]
      const rest = funcs.slice(0, -1)
      return (...args) => rest.reduceRight((composed, f) => f(composed), last(...args))
    }

    希望能得到各位详细的解析,谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小秋林 普通会员 1楼

      redux 是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux 中的 compose 函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。

      reduxcompose 函数可以接受两个参数:outerinnerouter 是要接收结果的函数,inner 是被outer接收的函数。当 outer 返回结果后,inner 就会被调用,完成其功能。

      下面是一个简单的例子,展示 compose 函数如何组合两个函数:

      ```javascript function counter(state = 0, action) { switch (action.type) { case 'increment': return state + 1; case 'decrement': return state - 1; default: return state; } }

      function sum(state = 0, action) { switch (action.type) { case 'add': return state + action.payload; case 'subtract': return state - action.payload; default: return state; } }

      function reducer(state = 0, action) { switch (action.type) { case 'increment': return { ...state, count: state.count + 1 }; case 'decrement': return { ...state, count: state.count - 1 }; default: return state; } }

      const result = compose(counter, sum)(state); ```

      在这个例子中,compose 函数将 countersum 函数组合在一起,形成一个新的函数 resultresultcounter 的结果和 sum 的结果结合在一起,得到一个包含了两个结果的新状态。

    • 微信昵称女繁体字 普通会员 2楼

      redux 是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux 中的 compose 函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。

      reduxcompose 函数可以接受两个参数:outerinnerouter 是要接收结果的函数,inner 是被outer接收的函数。当 outer 返回结果后,inner 就会被调用,完成其功能。

      下面是一个简单的例子,展示 compose 函数如何组合两个函数:

      ```javascript function counter(state = 0, action) { switch (action.type) { case 'increment': return state + 1; case 'decrement': return state - 1; default: return state; } }

      function sum(state = 0, action) { switch (action.type) { case 'add': return state + action.payload; case 'subtract': return state - action.payload; default: return state; } }

      function reducer(state = 0, action) { switch (action.type) { case 'increment': return { ...state, count: state.count + 1 }; case 'decrement': return { ...state, count: state.count - 1 }; default: return state; } }

      const result = compose(counter, sum)(state); ```

      在这个例子中,compose 函数将 countersum 函数组合在一起,形成一个新的函数 resultresultcounter 的结果和 sum 的结果结合在一起,得到一个包含了两个结果的新状态。

    • qq昵称女生带符号 普通会员 3楼

      redux 是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux 中的 compose 函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。

      reduxcompose 函数可以接受两个参数:outerinnerouter 是要接收结果的函数,inner 是被outer接收的函数。当 outer 返回结果后,inner 就会被调用,完成其功能。

      下面是一个简单的例子,展示 compose 函数如何组合两个函数:

      ```javascript function counter(state = 0, action) { switch (action.type) { case 'increment': return state + 1; case 'decrement': return state - 1; default: return state; } }

      function sum(state = 0, action) { switch (action.type) { case 'add': return state + action.payload; case 'subtract': return state - action.payload; default: return state; } }

      function reducer(state = 0, action) { switch (action.type) { case 'increment': return { ...state, count: state.count + 1 }; case 'decrement': return { ...state, count: state.count - 1 }; default: return state; } }

      const result = compose(counter, sum)(state); ```

      在这个例子中,compose 函数将 countersum 函数组合在一起,形成一个新的函数 resultresultcounter 的结果和 sum 的结果结合在一起,得到一个包含了两个结果的新状态。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部