前言
使用无状态函数构建的组件称为无状态组件,无状态组件只是一个 render 方法,没有组件类的实例化,也没有实例返回。
无状态组件只传入 props 和 context 两个参数,不存在 state,也没有生命周期方法。
const Title = (props, /* context */) => (
<Text>
{props.title}
</Text>
)
无状态组件可以接收 props ,也可以通过向方法设置静态属性来实现 propTypes 和 defaultProps。
Title.propTypes = {title: PropTypes.string}
Title.defaultProps = {title: 'stateless component'}
无状态组件没有状态,没有生命周期,只是简单地接受 props 渲染生成 DOM 结构,是一个纯粹为渲染而生的组件。由于无状态组件有简单、便捷、高效等诸多优点,在合适的情况下,都应该且必须使用无状态组件。无状态组件不会在调用时会创建新实例,它创建始终保持了一个实例,避免了不必要的检查和内存分配,做到了内部优化。