在React中创建类组件时,为什么还要扩展React.Component?

时间:2018-10-01 06:46:44

标签: javascript angular reactjs react-native es6-class

我是 反应 的新手,我感到非常困惑,并且日夜不停地思考着它,几乎我所有的头发都掉下来了而且仍然掉下来了,这就是为什么我们用类创建组件时,总是 扩展React.Component 类。

但是在 功能组件 和其他方法中,我们不做任何将创建的组件放入 React.Component < / em> 类。因此,主要问题是什么是 React.Component 类,为什么我们总是使用 extends 作为子级向其添加新组件以及为什么我们不能在不使用类组件中的 扩展 或不扩展 React.Component 类。那么, React.Component 类是什么? React 幕后发生了什么情况? / p>

我非常感谢能以示例和简单方法回答我的问题的人。

3 个答案:

答案 0 :(得分:1)

如果扩展React.Component类,则可以使用Component的生命周期,该生命周期可用于安装和卸载。

请参阅此https://reactjs.org/docs/react-component.html

答案 1 :(得分:0)

反应组件只是简单的功能。

例如,只要不使用JSX,就可以呈现功能性的react组件而无需导入react

如果您想使用JSX并将HTML写入js文件中,则需要导入react

如果要编写利用生命周期方法的组件,则需要扩展默认的Component类。 Component类包含生命周期方法,不应与其他通用react组件(例如功能组件或您可能编写的任何组件)混淆。 Component指的是react维护的特定类实现。

扩展Component将使您可以使用诸如componentDidMountcomponentDidUpdatecomponentWillUnmountrender之类的功能。

答案 2 :(得分:0)

通常,您将无状态组件用于表示层。然后,您将使用statefull组件(基于类的组件)作为行为层(容器组件)。容器组件可以包含许多动作,并可以接受许多您想使用的钩子。例如。 render()componentDidMount()

您可以阅读React的作者Dan Abramov写的blog

您还可以阅读scotch blog


但是在您进一步使用React之前,我强烈建议您学习JavaScript和ES6 +功能。有很多资料要学习。但是从MDN开始是个不错的选择。