javascript - 在 react-native 中避免相对路径导入地狱?
问题描述
我是来自 vue 背景的 react-native 新手,我讨厌 react 的一件事是必须在我的组件中使用相对路径导入,我发现自己在做类似的事情:
import HomeScreen from '../../components/screens/HomeScreen'
如果我的文件夹结构发生变化,这意味着我将不得不在所有使用该组件的 m 组件中进行搜索和替换,这并不酷而且容易成为开发者地狱。
是否可以像节点模块一样使用绝对路径,是否有一个库可以使用别名或类似的,使用 vue 我可以在 app.js 中导入我的组件,如 Vue.component('home-screen ...) 和我可以使用它们而无需导入。
解决方案
您可以package.json
使用名称键添加文件
{
"name": "@components"
}
在任何文件夹中,metro 都会识别它。
然后您可以导入为@components/screens/HomeScreen
如果您使用的是 vscode,则可以将 jsconfig.json 文件添加到项目根目录以启用导入自动完成功能。
这是我的:
{
"compilerOptions": {
"baseUrl": "",
"paths": {
"@components/*": ["src/components/*"],
"@helper/*": ["src/helper/*"],
"@actions/*": ["src/actions/*"],
"@constants/*": ["src/constants/*"],
"@primitives": ["src/primitives/index.js"],
"@graphql": ["src/graphql/index.js"],
"@services/*": ["src/services/*"],
"@assets/*": ["assets/*"]
}
}
}
推荐阅读
- java - Flink Savepoints akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://flink/user/jobmanager_1]
- java - Android Firebase 字典键更改大小写
- entity-framework - 违反 IsUnique 约束的实体框架批量更新
- php - 在 React 中为服务器端渲染生成 CSS - Material-UI
- wordpress - 如何在 wordpress 中制作 query_posts(标签或标签)?
- powershell - Powershell输出奇怪的输出
- android - ViewPager 中 CardView 布局中心位置
- javascript - 在自定义函数构造函数中操作 DOM
- c# - 显示的值错误
- php - 如何创建一些 shell 命令的 API,并允许通过 PHP 访问它们?