请稍等 ...
×

采纳答案成功!

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

老师能画个图或者用文字讲述一下 enqueueUpdate 这个函数吗?

老师,我在看 enqueueUpdate 这个的时候,我感觉代码我能看懂,但是我不知道这些代码在做什么?为什么要有 queue1 、queue2,然后 queue1 和 queue2 是什么关系,很希望你像讲 fiber 是怎么联系起来的那样,画个图讲解一下是如果创建和更新 Update 的

正在回答

1回答

你现在需要理解的呢其实不是`updateQueue`,而是`current`和`workInProgress`的概念,这个概念我是放在后面讲解`Suspense`的时候才深入讲解的,我不是很清楚你有没有看到哪里,如果你还没有看到的话不妨先留着问题,看后面的课程再回过头来理解。


而如果你已经看过后面的,那么我可以大致跟你解释一下,因为有`current`和`workInProgress`这个设计存在,前者代表目前的状态,后者代表当前更新的状态,而因为当前更新的状态在更新完成之后有可能会被抛弃(因为`error`或者`suspend`),所以如果他们引用的`updateQueue`是一样的,那么会造成被抛弃的更新影响了当前的状态的情况,所以React中就专门把他们使用两个不同的对象进行区分了。

1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉454255 #1
    感谢老师,我现在还没有看到后面的 Suspense,第一章我都看了两三遍了,有些东西还是不是太明白。那我先把问题留着
    回复 有任何疑惑可以回复我~ 2019-02-13 12:10:00
  • Jokcy 回复 提问者 慕粉454255 #2
    是的,建议第一遍是通览,有一个全局的概念再去扣细节,因为本身我自己源码也是前后看了不下10遍才会发现很多细节的,这个过程肯定是需要的。
    回复 有任何疑惑可以回复我~ 2019-02-13 12:14:24
  • Osuribaba 回复 Jokcy #3
    请问下老师,关于源码里那些乱七八糟的xxxxxxxtime是不是放到后面那个 ‘priority’章节讲呀?
    回复 有任何疑惑可以回复我~ 2019-02-13 13:37:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信