在react-native的源码文件/Libraries/react-native/react-native-implementation.js中,所有模块的导出方式如下:
const ReactNative = {
// Components
get AccessibilityInfo() { return require('AccessibilityInfo'); },
get ActivityIndicator() { return require('ActivityIndicator'); },
...
}
这里采用的是 getter
的方式去导出,并在方法内部去执行require
操作,有人了解上面的导出方式与下面的导出方式有什么区别么 ?
const AccessibilityInfo = require('AccessibilityInfo');
const ActivityIndicator = require('ActivityIndicator');
const ReactNative = {
// Components
AccessibilityInfo,
ActivityIndicator
...
}
谢谢大家!
总结一下,最初对打包构建部分不是很了解,所以才有此疑问。
不过,打包构建乃是静态解析,所以无论是采用哪种管理方式都不会对bundle的大小产生影响,但是因为其加载方式乃是按需加载,所以能够提高页面初始化的速度。