constructor(props)

React组件的构造函数在挂载之前被调用。

在实现 react.Component 构造函数时,应在其他语句之前(添加其他内容前),调用 super(props) ,用来将父组件传过来的 props 绑定在这个类中,使用 this.props 将会得到。
通常,在React中,构造函数仅用于一下两种情况:

  • 通过给this.state赋值对象来初始化内部state
  • 为事件处理函数绑定实例
    1. constructor(props: P) {
    2. super(props)
    3. console.log('constructor',this)
    4. // 定义state
    5. this.state = {
    6. name: 'syukinmei'
    7. }
    8. // 普通函数的this绑定,解决普通函数this丢失指向的事件源DOM是虚拟DOMundefined
    9. this.handler=this.handler.bind(this)
    10. }
    11. handler(){
    12. console.log(this)
    13. }

static getDerivedStateFromProps(nextProps,prevState)

componentDidMount()

  1. componentDidMount() {
  2. console.log('componentDidMount', this)
  3. // 将虚拟DOM渲染成真实DOM,获得真实DOM对其进行操作
  4. this.P.style.background = "red"
  5. // 发生数据请求
  6. fetch('http://59.110.226.77:3000/api/category')
  7. .then(data => data.json())
  8. .then(ref => console.log(ref))
  9. .catch(error => Promise.reject(error))
  10. }
  11. P: any = {}
  12. render() {
  13. return (
  14. <div>
  15. <p ref={el => this.P = el}>{this.state.name}</p>
  16. </div>
  17. )
  18. }