1. React中的链表
React Fiber版本的源码中使用到链表的数据结构(为了实现低优先级任务的暂停与重启),包括单向链表和环状链表。
- 首先,Hooks是以单向链表的形式存储在 Fiber 的 memoizedState 属性身上
- 同时,每个hooks又拥有自己的更新队列queue,queue.pending 会指向一个环状链表
2. 单向链表代码实现
function buildQueue(queue,action){
const update = {action,next:null}
const pending = queue.pending
if(!pending){
queue.pending = update