React组件有必要从React. component扩展吗?

Is it necessary for a React component to extend from React.Component?

本文关键字:React 扩展 component 组件      更新时间:2023-09-26

在React 0.13之后,我们可以使用ES6 class来创建像上面这样的React组件:

class A extends React.Component {
  // ...
}

但是,如果我偶尔忘记输入extends React.Component,只要我不使用this.setState()这样的简单方法,组件A仍然可以很好地工作。

我开始认为React组件从React.Component扩展是必要的。

在FLUX或Redux这样的架构中,有智能的React组件和愚蠢的React组件。智能的连接到数据存储,而愚蠢的只从父母那里接收道具并渲染。我已经知道在React 0.14中,我们可以简单地为愚蠢的人写一个纯函数。

然而,在智能组件中也存在一些组件有状态而一些组件没有状态的差异。如果输入extends React.Component和不只是this.setState()之间的差异,当我的组件不需要管理自己的状态时,我只是不extends React.Component

一个React组件是否需要从React. component扩展?

不在React v0.13中,但将在v0.14中:

ES6组件类现在必须扩展React.Component,以便启用无状态功能组件。ES3模块模式将继续工作。

因此,为了支持函数作为简单的无状态组件(您提到的),似乎类需要扩展React.Component