Created
December 5, 2018 08:49
-
-
Save Jokcy/ce6aa337a6e4540bc0a2671ab85392ca to your computer and use it in GitHub Desktop.
React Update & UpdateQueue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export type Update<State> = { | |
// 更新的过期时间 | |
expirationTime: ExpirationTime, | |
// export const UpdateState = 0; | |
// export const ReplaceState = 1; | |
// export const ForceUpdate = 2; | |
// export const CaptureUpdate = 3; | |
// 指定更新的类型,值为以上几种 | |
tag: 0 | 1 | 2 | 3, | |
// 更新内容,比如`setState`接收的第一个参数 | |
payload: any, | |
// 对应的回调,`setState`,`render`都有 | |
callback: (() => mixed) | null, | |
// 指向下一个更新 | |
next: Update<State> | null, | |
// 指向下一个`side effect` | |
nextEffect: Update<State> | null, | |
}; | |
export type UpdateQueue<State> = { | |
// 每次操作完更新之后的`state` | |
baseState: State, | |
// 队列中的第一个`Update` | |
firstUpdate: Update<State> | null, | |
// 队列中的最后一个`Update` | |
lastUpdate: Update<State> | null, | |
// 第一个捕获类型的`Update` | |
firstCapturedUpdate: Update<State> | null, | |
// 最后一个捕获类型的`Update` | |
lastCapturedUpdate: Update<State> | null, | |
// 第一个`side effect` | |
firstEffect: Update<State> | null, | |
// 最后一个`side effect` | |
lastEffect: Update<State> | null, | |
// 第一个和最后一个捕获产生的`side effect` | |
firstCapturedEffect: Update<State> | null, | |
lastCapturedEffect: Update<State> | null, | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment