setState 源碼淺析

  • 2019 年 12 月 4 日
  • 筆記

本文作者:IMWeb 王少飛 原文出處:IMWeb社區 未經同意,禁止轉載

先看下官網的一個demo 定時更新當前元素,

拿這個例子分析下setState的實現原理:

首先是reactComponent的setState方法

將新的狀態放到隊列中

新的狀態是立即更新還是後面render更新(這個例子是在batchedUpdate中更新的情況)

這裡採用事務處理為了可以執行用戶綁定的生命周期的方法,要更新的狀態最終放到dirtyComponents中

最終dirtyComponents中的數據經過diff後渲染到頁面