Function Component 不存在生命周期,所以不要把 Class Component 的生命周期概念搬过来试图对号入座。
复制 import React from 'react' ;
class Component extends React . Component {
componentDidMount () {
console .log ( 'componentDidMount' );
}
render () {
return null ;
}
}
复制 import React , {useEffect} from 'react' ;
function Component () {
useEffect (() => {
console .log ( 'componentDidMount' );
} , []);
return null ;
}
复制 import React from 'react' ;
class Component extends React . Component {
componentDidUpdate () {
console .log ( 'componentDidUpdate' );
}
}
复制 import React , {useEffect , useState} from 'react' ;
function Component () {
const [ count , setCount ] = useState ( 0 );
useEffect (() => {
console .log ( `componentDidMount or all state/props's componentDidUpdate` );
});
useEffect (() => {
console .log ( `componentDidMount or count's componentDidUpdate` );
} , [count]);
return null ;
}
复制 import React from 'react' ;
class Component extends React . Component {
componentWillUnmount () {
console .log ( 'componentWillUnmount' );
}
}
复制 import React , {useEffect} from 'react' ;
function Component () {
useEffect (() => {
// return's callback will be called only when componentWillUnmount
return () => {
console .log ( `componentWillUnmount` );
}
});
return null ;
}
以上生命周期方法可以直接套用对应的 hooks 示例,其他生命周期方法会在(2)中继续整理。 (本文意在巩固自己对 Hooks 理解,同时也为有需要者提供直接而有效的快速转换示例)