React class组件和function组件异同

Favori,

Class Function

图:Nguyen Nhut

相同点

都可以接收props返回react元素

不同点

编程思想

类组件需要创建实例,面向对象,函数组件不需要创建实例,接收输入,返回输出,函数式编程

内存占用

类组建需要创建并保存实例,占用一定的内存

值捕获特性

函数组件具有值捕获的特性

可测试性

函数组件方便测试

状态

类组件有自己的状态,函数组件没有,只能通过useState

生命周期

类组件有自己的生命周期,函数组件没有,可以使用useEffect实现类似的生命周期

逻辑复用

类组件继承,用HOC, 会导致逻辑混乱,嵌套,组合优于继承,函数组件hook逻辑复用

跳过更新

shouldComponentUpdate PureComponent, React.memo

发展未来

函数组件未来成为主流,屏蔽this、规范、复用、适合时间分片和渲染