React-Native:index.js文件的调用来源及控制流转问询
React Native 原生到 index.js 的控制流程说明
控制流程怎么转到 index.js?
Android端的MainActivity.java完成初始化和闪屏渲染后,会启动React Native的核心组件ReactRootView,这个组件会触发React Native的JS引擎(Hermes或JSC)初始化。JS引擎启动后会自动加载项目根目录的index.js作为JS代码的入口——这是React Native框架内置的默认行为,不需要手动写代码触发。
具体来说,你的MainActivity继承自ReactActivity,ReactActivity内部的onCreate方法会创建ReactRootView,再通过ReactInstanceManager管理React实例的生命周期。ReactInstanceManager会负责加载打包好的JS bundle,而这个bundle的执行起点就是index.js(打包时Metro会以index.js作为入口生成bundle)。
有没有显式调用 index.js 的文件?
没有开发者需要手动维护的显式调用文件,但框架层面有配置和逻辑指定了入口:
- 在
android/app/build.gradle的project.ext.react配置块里,entryFile字段默认值就是index.js,这个配置会告诉Metro打包工具生成以此为入口的JS bundle。 - 原生端的
ReactInstanceManager初始化时会读取这个配置,加载对应的JS bundle,间接触发index.js代码的执行。
本质上是框架靠配置约定和内置逻辑,自动把执行流程转到index.js的,不用手写代码去调用它。
内容的提问来源于stack exchange,提问作者ThinkAndCode
相关产品推荐
相关产品推荐

