美文网首页
React基础篇之高阶函数&函数柯里化

React基础篇之高阶函数&函数柯里化

作者: 硅谷干货 | 来源:发表于2021-12-12 10:48 被阅读0次

高阶函数

<script type="text/babel">
  //#region 
      /* 
        高阶函数:如果一个函数符合下面2个规范中的任何一个,那该函数就是高阶函数。
                1.若A函数,接收的参数是一个函数,那么A就可以称之为高阶函数。
                2.若A函数,调用的返回值依然是一个函数,那么A就可以称之为高阶函数。
                常见的高阶函数有:Promise、setTimeout、arr.map()等等

        函数的柯里化:通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。 
          function sum(a){
            return(b)=>{
              return (c)=>{
                return a+b+c
              }
            }
          }
        */
  //#endregion
  //创建组件
  class Login extends React.Component{
    //初始化状态
    state = {
      username:'', //用户名
      password:'' //密码
    }

    //保存表单数据到状态中
    saveFormData = (dataType)=>{
      return (event)=>{
        this.setState({[dataType]:event.target.value})
      }
    }

    //表单提交的回调
    handleSubmit = (event)=>{
      event.preventDefault() //阻止表单提交
      const {username,password} = this.state
      alert(`你输入的用户名是:${username},你输入的密码是:${password}`)
    }
    render(){
      return(
        <form onSubmit={this.handleSubmit}>
          用户名:<input onChange={this.saveFormData('username')} type="text" name="username"/>
          密码:<input onChange={this.saveFormData('password')} type="password" name="password"/>
          <button>登录</button>
        </form>
      )
    }
  }
  //渲染组件
  ReactDOM.render(<Login/>,document.getElementById('test'))
</script>

函数柯里化

<script type="text/babel">
  //创建组件
  class Login extends React.Component{
    //初始化状态
    state = {
      username:'', //用户名
      password:'' //密码
    }

    //保存表单数据到状态中
    saveFormData = (dataType,event)=>{
      this.setState({[dataType]:event.target.value})
    }

    //表单提交的回调
    handleSubmit = (event)=>{
      event.preventDefault() //阻止表单提交
      const {username,password} = this.state
      alert(`你输入的用户名是:${username},你输入的密码是:${password}`)
    }
    render(){
      return(
        <form onSubmit={this.handleSubmit}>
          用户名:<input onChange={event => this.saveFormData('username',event) } type="text" name="username"/>
          密码:<input onChange={event => this.saveFormData('password',event) } type="password" name="password"/>
          <button>登录</button>
        </form>
      )
    }
  }
  //渲染组件
  ReactDOM.render(<Login/>,document.getElementById('test'))
</script>

相关文章

  • React基础篇之高阶函数&函数柯里化

    高阶函数 函数柯里化

  • 初学函数式编程

    高阶函数(Higher-Order Function):高阶函数就是把函数作为参数的函数。 柯里化(Curryin...

  • 柯里化函数的认识与应用

    高阶函数之柯里化函数 维基百科中的定义 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受...

  • JS函数柯里化

    在正式聊函数柯里化之前,我这里给大家补充下高阶函数的概念和应用: 1.1、什么是高阶函数?高阶函数英文叫 High...

  • Swift函数式编程与面向协议编程

    函数式编程(FP) 一、函数式编程(FP)-高阶函数 二、函数式编程(FP) - 柯里化(Currying) 三、...

  • 06 高阶函数

    所谓高阶函数,就是将函数对象作为函数的参数或者函数的返回值,高阶函数是抽象必不可少的工具 柯里化和部分函数 函数其...

  • curried function

    柯里化 haskell 趣学指南中在高阶函数这一章中提出了柯里化概念。举例max函数首先看max函数的类型 按照以...

  • ES6中高阶函数与柯里化

    高阶函数 一个函数可以接收另一个函数作为参数,这种函数称为高阶函数。 柯里化 把接受多个参数的函数变换成接受一个单...

  • 手写简单.bind()实现

    手写一个实现柯里化的.bind() 柯里化:《函数柯里化小结》柯里化:前端开发者进阶之函数柯里化Currying ...

  • javascript-柯里化2018-08-08

    柯里化 / 高阶函数 柯里化:将 f(x,y) 变成 f(x=1)(y) 或 f(y=1)x 重点!!!柯里化可以...

网友评论

      本文标题:React基础篇之高阶函数&函数柯里化

      本文链接:https://www.haomeiwen.com/subject/frmvxrtx.html