首先從組件的角度來看下RN的啟動流程:(Android為例)

  1. Native初始化,主要流程:ReactNativeHost -> Activity -> ReactRootView -> startReactApplication -> createReactContextInBackground(期間有模塊/UI組件信息收集、JSC初始化等工作)
  2. 后臺異步加載、執(zhí)行JSBundle
  3. Native端執(zhí)行setupReactContext初始化React上下文,調(diào)用JS端AppRegistry.runApplication(key,params),key為模塊/組件名稱,參數(shù)包含rootTag、initialProps
  4. JS端找到注冊的對應(yīng)啟動組件,執(zhí)行renderApplication渲染整個應(yīng)用

RN啟動流程

renderApplication函數(shù)中會執(zhí)行: