为什么我们在 React 中创建 class 组件时扩展 React.Component?

Why we do extends React.Component when creating the class component in React?

我是React的新手,很迷茫,日思夜想,头发都掉光了并且还在掉下来,这就是为什么我们在使用 [=63= 创建组件时总是 扩展 React.Component class ].

但是在功能组件和其他方法中,我们不会做任何这样的事情来将创建的组件推送到React.Componentclass。所以主要的问题是什么是 React.Component class 为什么我们小时候总是向它添加新组件使用extends 以及为什么我们不能在不使用 extends 的情况下在 React Native 中创建组件class 组件中的 或不扩展 React.Component class。那么,什么是 React.Component class 里面发生了什么 React 幕后情况是什么?

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

如果你延长React.Component class ,你可以使用可用于挂载和卸载的组件的生命周期。

参考这个https://reactjs.org/docs/react-component.html

React 组件只是函数。

例如,只要您不使用 JSX,就可以在不导入 react 的情况下呈现功能性 react 组件。

如果你想使用 JSX 并在你的 js 文件中写入你的 HTML,那么你需要导入 react.

如果您想编写一个利用生命周期方法的组件,您需要扩展默认值Componentclass。 Component class 包含生命周期方法,不应与其他通用 react 组件混淆,例如功能组件或您可能编写的任何组件。此 Component 指的是由 react.

维护的特定 class 实现

扩展 Component 将使您可以访问 componentDidMountcomponentDidUpdatecomponentWillUnmountrender.

等函数

通常,您会为表示层使用无状态组件。您将为行为层(容器组件)使用有状态组件(基于 class 的组件)。容器组件可以包含许多操作并接受您想要使用的许多挂钩。例如。 render()componentDidMount()

您可以阅读 blog 由 React 的创建者 Dan Abramov 撰写的

您还可以阅读 scotch blog


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