1. 程式人生 > 其它 >2022年前端React的100道面試題的第6題:Class元件掛載時生命週期

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 節點的初始化應該放在這裡。

資料

元件的生命週期

UNSAFE_componentWillMount()

來源

搜尋《考試競技》微信小程式