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

来源:3-4 react-update-and-updateQueue

慕粉454255

2019-02-12

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

写回答

1回答

Jokcy

2019-02-12

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


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

1
5
Osuribaba
回复
Jokcy
好的。谢谢老师
2019-02-13
共5条回复

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程