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的的调用时机一致
相关文章
相关标签/搜索