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';
相关推荐
拾光拾趣录28 分钟前
如何优雅地实现每 5 秒轮询请求?
前端·javascript
袋鱼不重42 分钟前
Vue3 Effect源码解析
前端·javascript·vue.js
南屿im1 小时前
从零实现字符串模板引擎:从 正则解析 到 AST 思路解析 的进阶之路
前端·javascript
无羡仙1 小时前
React 路由配置:useRoutes 的使用详解
前端·javascript
前端小巷子1 小时前
Webpack 5 新特性解析
前端·javascript·面试
影子信息2 小时前
vue3 组件生命周期,watch和computed
前端·javascript·vue.js
Point2 小时前
[LeetCode] 最长连续序列
前端·javascript·算法
趣多多代言人2 小时前
20分钟学会TypeScript
前端·javascript·typescript
雲墨款哥3 小时前
一个前端开发者的救赎之路——JS基础回顾(二)
前端·javascript
smile boy3 小时前
个人财务记录应用
前端·javascript·css·css3·html5