当前位置: 首页 > news >正文

JavaScript中的命名导出(暴露)

在 JavaScript / React 中,“分别暴露”和“统一暴露”是两种常用的模块导出方式。下面我来清晰地解释它们的区别,并给出示例:


✅ 一、分别暴露(命名导出)

每个变量或函数分别用 export 导出。

📦 示例:

// utils.js
export const sum = (a, b) => a + b;
export const multiply = (a, b) => a * b;

✅ 导入方式:

import { sum, multiply } from './utils';

✅ 特点:

  • 可以只导入其中一部分:

    import { sum } from './utils';
    
  • 必须使用原名称导入,除非使用 as 重命名:

    import { sum as add } from './utils';
    

✅ 二、统一暴露(也是命名导出)

先定义,再统一用 export {} 导出。

📦 示例:

// utils.js
const sum = (a, b) => a + b;
const multiply = (a, b) => a * b;export { sum, multiply };

✅ 导入方式:

import { sum, multiply } from './utils';

✅ 特点:

  • 功能和“分别暴露”一样,只是语法结构不同。

  • 统一书写更方便管理导出列表。


✅ 三、默认暴露(default export)

每个模块只能有一个 export default

📦 示例:

// MyComponent.jsx
export default function MyComponent() {return <div>Hello</div>;
}

✅ 导入方式:

import MyComponent from './MyComponent';

✅ 特点:

  • 导入时可以使用任意名称(默认导出不需要花括号):

    import Anything from './MyComponent'; // 合法
    

✅ 四、混合使用(不推荐)

// utils.js
export const sum = () => {};
export default function main() {}

可以这样导入:

import main, { sum } from './utils';

👉 尽量避免这样写,容易引起混淆。


✅ 总结表格:

类型写法示例导入方式特点
分别暴露export const a = 1;import { a } from './x'可多次写、导入时必须加花括号
统一暴露export { a, b };import { a } from './x'统一管理、导入规则同分别暴露
默认暴露export default function() {}import x from './x'只允许一个、导入时不加花括号

如果你是写组件库或者模块工具,推荐使用:

  • 组件:默认导出

  • 工具函数:命名导出(统一导出更整洁)

相关文章:

  • 事件驱动架构入门
  • PHP学习笔记(十一)
  • pikachu通关教程-CSRF XSS
  • 工厂方法模式(Factory Method)深度解析:从原理到实战优化
  • 智能教育个性化学习路径规划系统实战指南
  • mongodb集群之分片集群
  • vscode中让文件夹一直保持展开不折叠
  • 1. pytorch手写数字预测
  • 数据结构与算法之Josephu(约瑟夫环问题)
  • 预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含
  • JavaScript 性能优化实战研讨
  • 吴恩达MCP课程(1):chat_bot
  • 【仿生机器人】仿生机器人系统架构设计2.0——具备可执行性
  • 【仿生机器人系统设计】涉及到的伦理与安全问题
  • 京东热点缓存探测系统JDhotkey架构剖析
  • Python的Web框架
  • Linux分区与文件系统选择:EXT4与XFS深度解析
  • MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测
  • SPL做量化----SRMI(动量修正指标)
  • Selenium操作指南(全)
  • 长春网站建设致电吉网传媒优/培训班招生方案有哪些
  • 网站开发用户登录前 登录后/百度词条
  • 政府网站建设技术服务/2023b站免费推广入口
  • 百度如何免费打广告/宁波seo推广服务
  • 站长工具推荐/百度sem竞价推广pdf
  • 做铝板的网站/什么是搜索引擎竞价推广