请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,请问 scheduleCallbackWithExpirationTime 调用的场景

第一次渲染的时候,expirationTIme 是 Sync 会调用 performSyncWork 执行,在后续的组件更新中什么情况下会使用异步更新(scheduleCallbackWithExpirationTime),没有什么体感,如果调用了,那么那个计算出来的 timeout 是什么,有些不太理解

正在回答 回答被采纳积分+3

1回答

Jokcy 2020-02-12 18:31:48

同步的更新中没有异步更新的,不同的更新之间是层次关系,不是父子关系,所以他们其实是不相关的,唯一的关系是先后

0 回复 有任何疑惑可以回复我~
  • 可能是我没表达清楚,这两个是层次的关系,我的意思是什么情况下会使用异步更新模式,是否只有在使用了 ConcurrentMode 才会使用异步模式
    
    ```js
    if (expirationTime === Sync) {
        performSyncWork();
      } else {
        scheduleCallbackWithExpirationTime(root, expirationTime);
      }
    ```
    在我进行代码调试的时候,不管是第一渲染(ReactDOM.render)还是 setState,都是调用 performSyncWork
    回复 有任何疑惑可以回复我~ 2020-02-12 20:23:15
  • 是否如果不使用 concurrentMode 都是同步更新,这样就和之前的更新方式没区别了,都是组件产生了更新之后 react 一股脑的把所以试图都更新
    回复 有任何疑惑可以回复我~ 2020-02-13 18:57:58
  • 目前通过ReactDOM.render方式渲染的应该都不是concurrent模式,只是利用了fiber架构,但并不是异步渲染
    回复 有任何疑惑可以回复我~ 2021-01-07 17:40:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信