React:什么决定了Stateless React组件实际上是React组件?

时间:2017-03-23 17:14:38

标签: javascript reactjs

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

import { Component } from 'react';
class ExampleComponent extends Component {
     render(){
          return(
              //render component content here
          )
     }
}

但是如果你使用无状态组件方法重写它:

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

......幕后发生了什么,以便该组件从Component继承生命周期行为?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

  

幕后发生了什么,以便该组件从Component继承生命周期行为?

无状态组件具有无后台实例,因此没有生命周期方法

它只是一个函数,它返回一个React元素(字符串和Agent.get/2是有效的React元素)。

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