ReactNative之解决文件导入路径问题

前言

眼看很多公司都开始尝试使用ReactNative,达到跨平台开发,最近也写了很多文章,希望让更多想了解的同学快速上手ReactNative.

如果喜欢我的文章,可以关注我微博:袁峥Seemygo

ReactNative之解决文件导入路径问题

RN文件路径问题

  • 在RN开发中,可能相对于原生iOS开发最麻烦的,就是导入自定义的组件
  • iOS中,导入自定义类,直接导入头文件就好了,不需要关心路径
  • RN中,每次导入自定义组件,都需要描述该组件的相对路径,这个比较浪费时间

解决RN文件路径问题

  • ReactNative提供了一个关键字@providesModule,可以解决文件路径问题,以后只要有这个关键字,导入组件就可以不需要路径,直接类名就好了

  • @providesModule使用

  • 在文件的顶部,嵌套一个多行注释,把@providesModule放在注释里,@providesModule后添加类名,以后就直接使用类名就能导入了。

  • 注意点,带有@providesModule的多行注释,一定要是文件的第一个多行注释。

/**
 * @providesModule Common
 */

import {
    Dimensions
} from 'react-native';

export default class Common {

    static bgColor = 'rgb(232,232,232)';

    static screenW = Dimensions.get('window').width;

    static screenH = Dimensions.get('window').height;
}
  • 外界使用Common
// 以前需要这样
// import Common from './../Common/Common'

// 现在可以直接用类名
import Common from 'Common'

使用@providesModule注意点

  • 前端在设计时候引入路径是必要的。可以很明确文件位置,无论调试还是维护,都知道这个文件来源。如果全部通过非路径导入,等想找这个文件的时候,就不知道这个文件在哪。
  • 当然也能解决,使用cmd+shirt+o就能快速查找文件
  • 所以,只有在公用率较高的模块,并未开发者知道这些模块是如何产生的情况下,再去使用。
  • 这种方式,只能在RN这种环境下用,不能用于前端的项目。

@providesModule原理

  • RN在打包脚本的时候会检测该类型文件,并在整个项目文件查找到对应文件替换成对应的模块代码。打出来的包还是跟导入相对路径是一样的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,075评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,869评论 18 139
  • 周杰伦 这么多年 听了你这么多首歌 从05年的夜曲到16年的告白气球 从依然范特西到床边故事 还想再淋一遍的下雨天...
    阿离克西斯阅读 227评论 0 0
  • 《长安西》 你虽然不在海边 但你那浪漫譬如海浪 沁我心间 你虽然不如沙漠 但你那浓浓暖意 温暖身边 你虽然不复从前...
    向昕阅读 204评论 0 0
  • 今天是线下晨跑第三周,天公不作美,但依然阻挡不了小伙伴们的热情。雨中晨跑,无人机拍摄,学习制作海报,还有早餐提供哟...
    南半球的猫阅读 245评论 0 1