Bootstrap

React类组件和函数组件之间有什么异同?

说明: 以下总结,不算HOOKS

先上代码

// 函数组件
function Welcome (props) {
  return <h1>Welcome {props.name}</h1>
}

// 类组件
class Welcome extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
    }
  }

  componentDidUpdate() {
  
  }

  componentWillUnmount() {
  
  }
  
  render() {
    return (
      <h1>Welcome {this.props.name}</h1>
    );
  }
}

相同:
1、组件名首字母必须大写
2、返回的组件只能有一个根元素
3、都不能修改props

不同:
1、函数组件比类组件性能好

因为类组件使用过程中,需要实例化,而函数组件不需要

2、this?声明周期?state?

函数组件没有this,没有生命周期,没有状态state.
类组件有this,有生命周期,有状态state。
这也是有状态组件和无状态组件的区别。

;