Javascript React:什么决定了无状态React组件实际上是React组件?

Javascript React:什么决定了无状态React组件实际上是React组件?,javascript,reactjs,Javascript,Reactjs,在ES6语法中,很容易理解从React扩展组件的组件就是React组件。例如: import { Component } from 'react'; class ExampleComponent extends Component { render(){ return( //render component content here ) } } 但是,如果您使用无状态组件方法重写它: const Examp

在ES6语法中,很容易理解从React扩展组件的组件就是React组件。例如:

import { Component } from 'react';
class ExampleComponent extends Component {
     render(){
          return(
              //render component content here
          )
     }
}
但是,如果您使用无状态组件方法重写它:

const ExampleComponent = (props) => {
    return
        //render component content here
}

。。。在幕后发生了什么,使得此组件从组件继承生命周期行为?

作为函数的无状态组件充当生命周期方法中的渲染方法主体。将组件定义为函数时,它将包装在类的呈现方法中

组件类的render()==无状态组件函数

在幕后发生了什么,使得该组件从组件继承生命周期行为

无状态组件没有支持实例,因此没有生命周期方法

它只是一个函数,返回一个React元素(字符串和
null
是有效的React元素)


React以不同的方式处理组件和无状态组件。如果它是一个返回可渲染内容的函数,那么它将直接渲染。如果它是一个带有render方法的类,那么该类将被实例化(如果尚未实例化),并使用
render
方法。

因此,如果以这种方式声明为无状态组件函数的组件被传递到要渲染的容器组件的呈现,React假设此无状态函数体仅返回父组件呈现的内容?换句话说,无状态组件函数本身没有任何特定于React的内容,只是按照惯例,它返回的内容应该可以由调用它的人呈现?是的,我唯一要添加的是,当您将组件定义为函数时,它应该返回JSX,或React.createElement(),或null:),它被包装在类的呈现方法中。-这就是它的工作原理吗?这听起来好像会带来很多不必要的开销。