react相關的3個面試題

react相關的3個面試題

setState是同步仍是異步?

  • legacy模式,命中batchedUpdates時是異步
  • legacy模式,未命中batchedUpdates時是同步react

    • 好比:用setTimeout包裹setState函數
  • concurrent模式都是異步

legacy模式 -- ReactDOM.render(<App />, rootNode)面試

concurrent模式 -- ReactDOM.createRoot(rootNode).render(<App />)異步

react的聲明周期函數

image
標紅的是即將過期,應該避免使用他們函數

useEffect(fn, [ ])和componentDidMount有什麼區別

  1. 聊聊useEffect的第二個參數如何影響useEffect回調函數的執行
  2. useEffect回調函數與componentDidMount的執行時機spa

    • useEffect(fn, []) -- commit階段完成後異步調用
    • componentDidMount -- commit階段完成視圖更新(mutation階段)後,在layout階段同步調用
    • useLayoutEffect(fn, []) -- 在layout階段同步調用,跟componentDidMount的的調用時機一致
相關文章
相關標籤/搜索