2022年前端React的100道面試題的第6題:Class元件掛載時生命週期
問題
React17的類元件被建立的生命週期順序是?
A static getDerivedStateFromProps() → constructor() → render() → componentDidMount()
B constructor() → render() → getSnapshotBeforeUpdate() → componentDidMount()
C constructor() → static getDerivedStateFromProps() → render() → componentDidMount()
D constructor() → render() → componentDidMount()
答案
C
解答
17.0 刪除了生命週期方法 componentWillMount,修改為 UNSAFE_componentWillMount 別名,不再建議使用。
constructor()
constructor(props)
在 React 元件掛載之前,會呼叫它的建構函式。如果不初始化 state 或不進行方法繫結,則不需要為 React 元件實現建構函式。
static getDerivedStateFromProps()
static getDerivedStateFromProps(props, state)
getDerivedStateFromProps
會在呼叫 render 方法之前呼叫,並且在初始掛載及後續更新時都會被呼叫。它應返回一個物件來更新 state,如果返回 null
render()
render()
方法是 class 元件中唯一必須實現的方法。
注意:如果
shouldComponentUpdate()
返回 false,則不會呼叫render()
。
componentDidMount()
componentDidMount()
會在元件掛載後(插入 DOM 樹中)立即呼叫。依賴於 DOM 節點的初始化應該放在這裡。
資料
來源