1.函数组件在创建fiber时候的tag是指定为indeterminate的
这时候创建instance流程会根据这个函数的返回结果来判断是按照函数组件去创建fiber和更新还是类组件去创建fiber和更新
typeof value === 'object' &&
value !== null &&
typeof value.render === 'function' &&//!有render方法 会认为这个class组件
value.$$typeof === undefined
返回值满足这个条件将被认为是类组件
不满足将认为是函数组件
import React from 'react'
export default function TestIndeterminateComponent() {
return {
componentDidMount() {
console.log('invoker')
},
render() {
return <span>aaa</span>
},
}
}
返回值是个对象且有render方法 按照类组件去创建 那么return 的对象生命周期将会执行