在使用react-native的时候,经常要自定义很多组件,但是只能使用../../../的方式,如果目录多了一长串,书写很烦,看着也不好看。

方法一:

例如你想引入utils里面的文件,不想../../../....,这样引入,而是想@utils/.....这样引入,那么你就可以在utils文件中放一个package.json,里面如下:

{
"name": "@utils"
}

然后就可以引用了

import { connect } from '@utils/utils/dva';

方法二:

babel-plugin-module-resolver 是一个Babel模块解析插件, 在.babelrc中可以配置模块的导入搜索路径. 为模块添加一个新的解析器。这个插件允许你添加新的“根”目录,这些目录包含你的模块。它还允许您设置一个自定义别名目录,具体的文件,甚至其他NPM模块。

yarn add babel-plugin-module-resolver

然后配置项目根目录的.bablerc文件:

{
"plugins": [
["module-resolver",
{
"root": ["./"],
"extensions": [".js"],
"cwd":"babelrc",
"alias": {
"@":"./app/"
}
}
]
]
}

然后就可以根据 设置的别名 @ 方式引入自己要用的资源了组件了,例如:

import Index from '@/components/index/index.js';
import { WIDTH } from '@/config/base';
root:一个字符串或根目录的数组。指定路径或全局路径(例如./src/**/components)

alias:别名的配置。也可以别名node_modules依赖关系,而不仅仅是本地文件。

extensions:解析器中使用的扩展数组。覆盖默认扩展名(['.js', '.jsx', '.es', '.es6', '.mjs'])。

cwd:默认情况下,工作目录是用于解析器的工作目录,但是您可以覆盖您的项目。
自定义值babelrc将使插件根据要解析的文件查找最接近的babelrc配置。
自定义值packagejson将使插件查找最接近package.json的文件解析。 transformFunctions:将会变换其第一个参数的函数和方法的数组。默认情况下,这些方法是:require,require.resolve,System.import,jest.genMockFromModule,jest.mock,jest.unmock,jest.doMock,jest.dontMock。 resolvePath(sourcePath, currentFile, opts):为文件中的每个路径调用的函数。默认情况下,模块解析器使用一个内部函数,如下所示:import { resolvePath } from 'babel-plugin-module-resolver'。该opts参数是通过babel配置通过选择对象。

react-native 相对项目路径导入组件的更多相关文章

  1. react-native 相对项目路径导入组件 ___ babel-plugin-module-resolver

    babel-plugin-module-resolver 是一个Babel模块解析插件, 在.babelrc中可以配置模块的导入搜索路径. 为模块添加一个新的解析器.这个插件允许你添加新的" ...

  2. (架构)React Native 导出项目全局共用组件的模块

    自定义组件全局使用(类似如下) import { ReactNavComponent, Widget, Util } from 'rn-yunxi'; const { RegexpUtil, Stor ...

  3. react-native 相对项目路径导入组件 ___ babel-plugin-root-import

    在使用react-native的时候,经常要自定义很多组件,但是只能使用../../../的方式,经常不记得这是多深,有没有一个插件,能自动帮我们解决这样的问题? 使用指南 我们使用的目标要达到以下的 ...

  4. React Native之本地文件系统访问组件react-native-fs的介绍与使用

    React Native之本地文件系统访问组件react-native-fs的介绍与使用 一,需求分析 1,需要将图片保存到本地相册: 2,需要创建文件,并对其进行读写 删除操作. 二,简单介绍 re ...

  5. React Native开源项目案例

    (六).React Native开源项目: 1.Pober Wong_17童鞋为gank.io做的纯React Native项目,开源地址:https://github.com/Bob1993/Rea ...

  6. React Native 开源项目汇总

    最近闲来无事,学习了React Native开发Android APP,自我感觉RN APP的效果和Native APP比还是蛮不错,以下是找到的一些优秀源码,仅供学习参考... React Nati ...

  7. React Native 系列(九) -- Tab标签组件

    前言 本系列是基于React Native版本号0.44.3写的.很多的App都使用了Tab标签组件,例如QQ,微信等等,就是切换不同的选项,显示不同的内容.那么这篇文章将介绍RN中的Tab标签组件. ...

  8. React Native 之 项目实战(一)

    前言 本文有配套视频,可以酌情观看. 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我. 文中所有内容仅供学习交流之用,不可用于商业用途,如因此引起的相关法律法规责任,与我无关. 如文中内容对 ...

  9. React Native入门教程2 -- 基本组件使用及样式

    在上一篇文章中,我们学会了如何搭建React Native的环境(React Native入门教程(笔记) 1 – 开发环境搭建),不知道你们是否搭建好了呢,如果还没有,那么快动起小手,来体验RN带给 ...

随机推荐

  1. webscoket通信初步(一)

    只要动手做起来,多投入时间和精力.耐心去研究,以大多人的智商加google,平时遇到的大部分问题我们都是可以自己解决的,大部分的知识我们都是可以掌握的. 我们都知道http协议是单向请求的,无法实现双 ...

  2. python-selenium并发执行测试用例(方法一 各模块每一条并发执行)

    总执行代码: # coding=utf-8import unittest,os,timeimport HTMLTestRunnerimport threadingimport syssys.path. ...

  3. linux一些基本知识

    一.linux i386是32位的,amd64是64位(一般情况不限intel或者amd)       server是服务器版,desktop是桌面版 Desktop是社区开源版,拥有一些新功能新软件 ...

  4. 【转】十年你能做的能得到的有多少?一个工科IT男的工作回忆

    https://blog.csdn.net/b5w2p0/article/details/8798989

  5. 刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址

    刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址是3台设备,分别是客户机Windows系统.核心交换机.PPPoE拨号的路由器 第一步:在PPPoE拨号的路由器上面查看ppp0拨号的地址 ifc ...

  6. Jmeter(三)Test-Plan、Thread-Group

    思量再三,还是再记一会,看到技术群里边的讨论,真的是压力山大,学习一刻也不能耽搁.继续来回顾Jmeter的知识吧. Test-Plan,是所有Jmeter脚本的根节点,Test-Plan中包含名称.注 ...

  7. [UE4]实例化材质

    在虚幻引擎 4 中,材质实例化用来更改材质的外观,而不会引起成本高昂的材质重新编译. 实例化材质官方文档

  8. Flume案例Ganglia监控

    Flume案例和Flume监控系统的使用: 安装 将apache-flume-1.7.0-bin.tar.gz上传到linux的/opt/software目录下 解压apache-flume-1.7. ...

  9. 《Linux性能及调优指南》第二章:监控和基准工具2.1-2.2

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  10. [ORACLE]java.sql.SQLRecoverableException: IO Error: Connection rese

    随机数引起的阻塞问题 程序通过 java -jar -Djava.security.egd=file:/dev/./urandom xxx 的方式执行, http://hongjiang.info/j ...