美文网首页
React.Component

React.Component

作者: 三元一只十元三只 | 来源:发表于2020-04-15 08:40 被阅读0次

    前面我们了解到了React组件有函数组件和class组件两种,对比来说class组件功能更加丰富。接下来简单学习一下class组件有哪些方法。

    Constructor

    class组件的构造函数,它主要有两个用处,第一初始化state,第二是做函数的绑定。比如class组件中有处理点击事件的方法 handleClick(),就需要在构造函数中

    this.handleClick = this.handleClick.bind(this)
    

    在构造函数中需要注意以下几点:
    1、 在其他语句之前调用super(props),否则会报错
    2、不要在构造函数中调用this.setState,也不能在初始化state时使用this.props中的值。

    componentDidMount

    componentDidMount会在组件挂载后立即调用。componentDidMount适合添加订阅。有一个需要注意的点,componentDidMount是在render之后挂载的,所以在componentDidMount中请求接口返回数据给render显示,需要在构造函数中初始化数据类型,否则会出现undefined的错误。

    componentWillUnmount

    这是在组件准备卸载前会调用这个方法,用于取消componentDidMount中的订阅,销毁之前的调用等。

    render

    render是一个class组件中必须的一个方法,如果我们在组件渲染时做一些额外的准备工作,可以不需要定义construstor,componentDidMount,componentWillUnmount事件等。

    组件挂载顺序

    前面提到过组件挂载时render会比compinentDidMount之前调用,现在我们看下组件挂载过程中具体的方法调用顺序:
    constructor
    static getDerivedStateFromProps()
    render
    componentDidMount

    static getDerivedStateFromProps()会在初始化完成之后 render调用之前调用。它的适用条件比较罕见,只在state需要跟props做全绑定时才会使用。我们知道在初始化state时其实就是将给state赋了一个初始值,此时的state和props不相等。state的值完全取决于props时才会用的static getDerivedStateFromProps方法。

    相关文章

      网友评论

          本文标题:React.Component

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