React-Native 模块导出问题?

在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
    ...
}

谢谢大家!

阅读 2.9k
2 个回答

总结一下,最初对打包构建部分不是很了解,所以才有此疑问。

不过,打包构建乃是静态解析,所以无论是采用哪种管理方式都不会对bundle的大小产生影响,但是因为其加载方式乃是按需加载,所以能够提高页面初始化的速度。

上一种是需要的时候再require,下一种是一股脑的全部require进来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题