React 中的 React.component 除了创建我们组件的实例并在其上设置 props 对象之外还有啥作用?

Posted

技术标签:

【中文标题】React 中的 React.component 除了创建我们组件的实例并在其上设置 props 对象之外还有啥作用?【英文标题】:What does React.component in React apart from creating instance of our component and setting props object on it?React 中的 React.component 除了创建我们组件的实例并在其上设置 props 对象之外还有什么作用? 【发布时间】:2019-08-14 08:51:02 【问题描述】:

我们通过扩展 React.component 在 react 中创建组件。我正在阅读在组件的构造函数中调用 super(props) 的代码,在父构造函数中它在我们的组件实例上设置 props。除了实例化我们的组件实例还有什么其他功能React.component 在我们扩展它时提供。我还读到如果我们不扩展 react.component 我们就不能拥有组件的状态。它与组件的状态有什么关系?

【问题讨论】:

你可以在这里看到 React.Component 的实现:github.com/facebook/react/blob/master/packages/react/src/…。只有几十行代码 是的,我检查过了。React.component 函数中使用的“this”是指组件实例吗?也是函数..我们正在扩展函数 是的,this 指的是组件实例。 this 在 React 组件中的行为与在 javascript 中其他任何地方的行为完全相同。 also it is function ..we are extending function 是的,javascript 中的所有类都是函数。 class 关键字只是函数和原型之上的语法糖。 【参考方案1】:

当你扩展然后React.Component 它允许你做不同的任务:

允许初始化道具 允许初始化状态 允许使用生命周期挂钩 允许使用自定义挂钩 允许做任何允许类做的事情

【讨论】:

以上是关于React 中的 React.component 除了创建我们组件的实例并在其上设置 props 对象之外还有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

React 中的 React.component 除了创建我们组件的实例并在其上设置 props 对象之外还有啥作用?

react中对import React,{Component} from ‘react‘写法的解释

Typescript 和 React:使用 React.Component 和条件类型化道具时类型推断失败

React.Component 与 React.createClass

【原创】react-源码解析 - Component&Ref(3)

解读 React.memo