- 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 条
- 全部回答
-
小秋林 普通会员 1楼
redux是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux中的compose函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。redux的compose函数可以接受两个参数:outer和inner。outer是要接收结果的函数,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函数将counter和sum函数组合在一起,形成一个新的函数result。result将counter的结果和sum的结果结合在一起,得到一个包含了两个结果的新状态。
-
微信昵称女繁体字 普通会员 2楼
redux是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux中的compose函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。redux的compose函数可以接受两个参数:outer和inner。outer是要接收结果的函数,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函数将counter和sum函数组合在一起,形成一个新的函数result。result将counter的结果和sum的结果结合在一起,得到一个包含了两个结果的新状态。
-
qq昵称女生带符号 普通会员 3楼
redux是 React 的一个重要特性,它允许你在一个状态管理器中同时处理多个状态的变化。redux中的compose函数可以让你在应用中组合多个函数,形成一个更为复杂的函数或者状态管理器。redux的compose函数可以接受两个参数:outer和inner。outer是要接收结果的函数,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函数将counter和sum函数组合在一起,形成一个新的函数result。result将counter的结果和sum的结果结合在一起,得到一个包含了两个结果的新状态。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
