require/exports 或 import/export的联系和区别,各自的使用场景

以下是 require/exports(CommonJS)与 import/export(ES6 Modules)的对比分析及使用场景说明:

一、核心联系‌

‌模块化目标‌

两者都用于实现代码模块化,解决全局作用域污染和依赖管理问题。

‌跨环境适配‌

可通过工具(如 Babel、Webpack)相互转换,兼容不同运行环境。

区别:

‌三、使用场景‌

‌1. require/exports(CommonJS)‌

‌Node.js 后端开发‌:原生支持,无需编译12。

‌动态依赖加载‌:需根据条件动态导入模块的代码逻辑4。

‌旧项目维护‌:基于 CommonJS 的传统项目或库

复制代码
// 导出
exports.add = (a, b) => a + b;
// 或
module.exports = { add };

// 导入
const utils = require('./utils');
utils.add(2, 3);

import/export(ES6 Modules)‌

‌现代前端框架‌(React/Vue):与构建工具链深度集成。

‌浏览器原生模块‌:通过 <script type="module"> 直接使用。

‌静态优化需求‌:需 Tree Shaking 移除未使用代码。

复制代码
// 导出(具名导出 + 默认导出)
export const multiply = (a, b) => a * b;
export default function div(a, b) { return a / b; }

// 导入
import { multiply } from './math.js';
import div from './math.js';
相关推荐
魔术师ID9 分钟前
vue 指令
前端·javascript·vue.js
Clown9539 分钟前
Go语言爬虫系列教程 实战项目JS逆向实现CSDN文章导出教程
javascript·爬虫·golang
星空寻流年1 小时前
css3基于伸缩盒模型生成一个小案例
javascript·css·css3
waterHBO2 小时前
直接从图片生成 html
前端·javascript·html
EndingCoder3 小时前
JavaScript 时间转换:从 HH:mm:ss 到十进制小时及反向转换
javascript
互联网搬砖老肖3 小时前
React组件(一):生命周期
前端·javascript·react.js
HCl+NaOH=NaCl+H_2O3 小时前
Quasar组件 Carousel走马灯
javascript·vue.js·ecmascript
℘团子এ3 小时前
vue3中预览Excel文件
前端·javascript
shmily麻瓜小菜鸡4 小时前
在 Angular 中, `if...else if...else`
前端·javascript·angular.js
OK_boom6 小时前
React-useRef
javascript·react.js·ecmascript