1 - 函数式组件不会被实例化。整体渲染性能的搭配提升
函数式组件被精简成一个 render 方法的函数,所以它没有组件实例化的过程,无实例化过程也就不需要分配多余的内存,故性能得到一定的提升。同时,函数式组件本身式没有 this 的,所以在使用 Ref 等模块时与类组件也有所区别。
2 - 函数式组件没有状态
函数式组件本身没有自己的内部状态 state,数据依赖于 props 的传入,所以它又称无状态组件。
3 - 函数式组件没有访问生命周期的方法
函数式组件是不需要组件生命周期管理的,所以底层实现这种形式的组件时是不会实现组件的生命周期方法。
何时使用函数式组件?
函数式组件相比于类组件,拥有更好的性能和更简单的职责,十分适合分割原本庞大的组件,未来 React 也会对函数式组件进行一系列的优化,譬如无意义检查和内存分配领域相关的优化。所以只要有可能,尽量使用函数式组件。