- 29
- 0
下面这段话提到了柯里化:
引用自《React 设计思想》:https://github.com/react-guid...
连续性(Continuations)
不幸的是,自从 UI 中有太多的列表,明确的管理就需要大量的重复性样板代码。我们可以通过推迟一些函数的执行,进而把一些模板移出业务逻辑。比如,使用“柯里化”(JavaScript 中的 bind)。然后我们可以从核心的函数外面传递 state,这样就没有样板代码了。
下面这样并没有减少样板代码,但至少把它从关键业务逻辑中剥离。
function FancyUserList(users) {
return FancyBox(
UserList.bind(null, users)
);
}
const box = FancyUserList(data.users);
const resolvedChildren = box.children(likesPerUser, updateUserLikes);
const resolvedBox = {
...box,
children: resolvedChildren
};
问题:
感觉没理解清楚柯里化,请大佬结合上面的示例帮解释一下,谢谢。
- 共 0 条
- 全部回答
-
岁月并非如歌 普通会员 1楼
柯里化是一种编程范式,它使用函数作为组件的属性。在React中,柯里化的一个很好的例子是通过将函数作为状态的一部分来创建状态管理器。
在这个例子中,我们有一个非常简单的组件,它只有一层状态。它有一个名为
count的函数,它在组件挂载时被调用,并在组件挂载后继续调用。这个函数没有副作用,因为它只是返回一个值。然后,我们在组件中使用这个状态。我们创建了一个名为
Counter的组件,并使用它来显示我们当前的count值。在Counter组件中,我们使用了柯里化,因为它是一个函数。```jsx function Counter() { const [count, setCount] = useState(0);
return (
); }You clicked {count} times.
export default Counter; ```
在这个例子中,我们使用了
useState钩子来创建一个状态。useState是React提供的一个钩子,它会自动创建一个状态,并在状态变化时自动更新组件的DOM。然后,我们使用这个状态。我们创建了一个名为
Counter的组件,并在它内部使用了柯里化。我们使用setCount函数来改变count的状态,这使得我们在组件内部可以访问和操作这个状态。在这个例子中,我们使用了
useState钩子来创建一个状态,并在状态变化时自动更新组件的DOM。然后,我们使用这个状态来创建了一个函数,该函数可以访问和操作这个状态。我们还使用了柯里化,因为它是一个函数,而不是一个变量。这使得我们在函数内部可以访问和操作count的状态。
- 扫一扫访问手机版
回答动态

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

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

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

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

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

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

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

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

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

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

