|
|
@ -124,9 +124,12 @@ createInstance 会调用 createElement 方法创建一个 DOM 实例,并调用 |
|
|
|
- 最后没有找到以上属性,会进入最后的 else 逻辑:给 `updatePayload` 数组 `push` 进 props 属性名和 对应的属性值,进入下一轮循环 |
|
|
|
- 最后没有找到以上属性,会进入最后的 else 逻辑:给 `updatePayload` 数组 `push` 进 props 属性名和 对应的属性值,进入下一轮循环 |
|
|
|
|
|
|
|
|
|
|
|
当所有的循环结束会判断 styleUpdates 是否合法(不为 null,且数组长度不为0),合法则进入将调用 validateShorthandPropertyCollisionInDev 函数,传递 styleUpdates 和 新 props style 属性,最后将 `style 字符串` 和 `styleUpdates` 推入 `updatePayload` |
|
|
|
当所有的循环结束会判断 styleUpdates 是否合法(不为 null,且数组长度不为0),合法则进入将调用 validateShorthandPropertyCollisionInDev 函数,传递 styleUpdates 和 新 props style 属性,最后将 `style 字符串` 和 `styleUpdates` 推入 `updatePayload` |
|
|
|
返回 updatePayload |
|
|
|
返回 `updatePayload` |
|
|
|
|
|
|
|
|
|
|
|
回到 `updateHostComponent` 函数,将 |
|
|
|
回到 `updateHostComponent` 函数,将 `prepareUpdate` 也就是 `diffProperties` 返回的 `updatePayload` 赋值给 `workInProgress` 的 `updateQueue` 属性,如果它不为空则执行 `markUpdate` 函数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### markUpdate |
|
|
|
|
|
|
|
为传入的 workInProgress 打上 Update 标记 |
|
|
|
|
|
|
|
|
|
|
|
## 第二次触发更新和后续触发更新 |
|
|
|
## 第二次触发更新和后续触发更新 |
|
|
|
|
|
|
|
|
|
|
|