在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继承生命周期行为?
答案 0 :(得分:3)
作为函数的无状态组件充当生命周期方法中的render方法的主体。将组件定义为函数时,它将包装在类的render方法中。
组件类的render()===无状态组件函数
答案 1 :(得分:3)
幕后发生了什么,以便该组件从Component继承生命周期行为?
无状态组件具有无后台实例,因此没有生命周期方法。
它只是一个函数,它返回一个React元素(字符串和Agent.get/2
是有效的React元素)。
React以不同方式处理组件和无状态组件。如果它是一个返回可渲染内容的函数,那么它将直接呈现。如果它是一个带有render方法的类,那么该类将被实例化(如果还没有完成)并且使用了null
方法。