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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请大佬结合《React 设计思想》里这个react示例帮解释一下柯里化
    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
    };
    
    
    

    问题:
    感觉没理解清楚柯里化,请大佬结合上面的示例帮解释一下,谢谢。

    1
    打赏
    收藏
    点击回答
        全部回答
    • 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的状态。

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