《React+Redux前端开发实战》—2.1.2 ES 6写法:React.Component

举报
华章计算机 发表于 2019/07/24 23:31:19 2019/07/24
【摘要】 本节书摘来自华章计算机《React+Redux前端开发实战》一书中的第2章,第2.1.2节,作者是徐顺发.

2.1.2  ES 6写法:React.Component

  React.Component是以ES 6的形式来创建组件的,这是React目前极为推荐的创建有状态组件的方式。相对于React.createClass(),此种方式可以更好地实现代码复用。本节将2.1.1节介绍的React.createClass()形式改为React.Component形式。

  使用React.Component创建组件示例:

  

  class Input extends React.Component {

    constructor(props) {

        super(props);

        // 设置initial state

        this.state = {

            text: props.initialValue || 'placeholder'

        };

        // ES 6类中的函数必须手动绑定

        this.handleChange = this.handleChange.bind(this);

    }

    handleChange(event) {

        this.setState({

            text: event.target.value

        });

    }

    render() {

        return (

            <div>

                Type something:

                <input onChange={this.handleChange}

               value={this.state.text} />

            </div>

        );

    }

  }

  

  React.Component创建的组件,函数成员不会自动绑定this,需要开发者手动绑定,否则this无法获取当前组件的实例对象。当然绑定this的方法有多种,除了上面的示例代码中在constructor()中绑定this外,最常见的还有通过箭头函数来绑定this,以及在方法中直接使用bind(this)来绑定这两种。

  通过箭头函数来绑定this示例:

  

  // 使用bind来绑定

  <div onClick={this.handleClick.bind(this)}></div>

  

  在方法中直接使用bind(this)来绑定this示例:

  

  // 使用arrow function来绑定

  <div onClick={()=>this.handleClick()}></div>


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。