React import 配置路径别名‘@’,简化import Component的方式

摘要

在react中,大多数业务逻辑都组件化;极大的减轻了代码的冗余度,如果组件的层次比较深的话,组件的import就比较费劲,在import时使用“…/…/components/test”的方式,组件的import就会稍显混乱、组件代码不容易维护。为了可高效的、快速的维护组件代码,废弃“…/…/”的组件引入方式,配置一个组件路径重写的方式引入组件。

配置内容

我在之前就介绍过在react中引入less的配置,同样的为了配置一个路径别名,使用customize-cra来覆写webpack底层配置。(配置覆写webpack需要的插件以及第三方库就不在复述,不清楚的可以去参考Ant Design官方的配置说明)

附上我的less配置原文地址:https://www.cnblogs.com/BlueBerryCode/p/11943111.html

路径别名重写方式一

const {
    override } = require('customize-cra');
const path = require("path");
 
module.exports = override(
     config =>{
   
         config.resolve.alias = {
   
             "@": path.resolve(__dirname, "src")
         };
         return config;
     }
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以回答这个问题。在使用vite搭建React 18应用程序时,可以使用import.meta.glob函数来批量导入组件。这个函数接受一个字符串参数,返回一个promise,可以通过await来等待导入的结果。具体使用方法可以参考vite的官方文档。 ### 回答2: 在使用Vite和React 18时,我们可以使用新的`import.meta.glob`来配置动态导入模块。 `import.meta.glob`是一个自动匹配和导入模块的功能。它允许我们根据指定的匹配模式,动态地导入多个模块。这种导入方式灵活且高效,特别适用于需要动态加载多个模块的场景。 要在Vite中使用`import.meta.glob`,我们需要在项目的`vite.config.js`配置文件中进行相应的设置。 首先,我们需要确保安装了Vite的依赖,包括vite和@vite/react-plugin。 ```shell npm install vite @vite/react-plugin --save-dev ``` 然后,在`vite.config.js`中添加以下内容: ```javascript import reactRefresh from '@vite/react-plugin'; export default { plugins: [ reactRefresh(), ], optimizeDeps: { include: ['react', 'react-dom'], }, }; ``` 接下来,我们可以在React组件中使用`import.meta.glob`来动态地导入多个模块。 ```javascript const pages = import.meta.glob('./pages/*.js'); function App() { return ( <div> {Object.keys(pages).map((path) => { const PageComponent = pages[path]().default; return <PageComponent key={path} />; })} </div> ); } ``` 上述代码示例中,我们使用`import.meta.glob`动态地导入了某个目录下的所有`.js`文件,并渲染每个导入的组件。 这样,我们就可以利用Vite和React 18中的`import.meta.glob`功能来实现动态导入和渲染多个模块的需求。这种方式不仅简洁高效,还能提高开发效率。 ### 回答3: 在使用React 18配置import.meta.glob时,我们需要确保项目中已经升级到React 18版本,并且已经支持相关的API。 首先,我们需要在项目中的vite.config.js文件中配置相关内容。假设我们要匹配以".jsx"和".js"结尾的所有文件,我们可以使用import.meta.glob模式来快速导入这些文件。 ``` import { defineConfig } from 'vite'; export default defineConfig({ ... plugins: [ ... reactRefresh(), { name: 'import-meta-glob', enforce: 'pre', resolveId(source, importer) { if (source.startsWith('/dir/')) { const glob = source.replace('/dir/', '/dir/**/*'); return glob; } return null; }, load(id) { if (id.match(/\.jsx?$/)) { // 加载我们匹配到的文件 return fs.promises.readFile(id, 'utf-8'); } return null; }, }, ... ], ... }); ``` 在这个示例中,我们定义了一个插件名为import-meta-glob,并且在resolveId函数中进行了匹配路径的处理。当路径以"/dir/"开头时,我们将使用import.meta.glob模式匹配所有后缀为".jsx"和".js"的文件。 然后,在load函数中,我们加载匹配到的文件内容。你可以根据自己的需求,使用不同的处理方式来处理这些文件。 最后,在项目中可以直接使用import来引入匹配到的文件,例如: ``` import files from '/dir/*.js'; console.log(files); ``` 这样,我们就成功地在React 18项目中配置import.meta.glob,可以方便地批量导入文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值