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

默认导出(default)和命名导出

1.默认导出

优点:

  1. 简洁的导入语法: 导入时不需要使用花括号,可以直接重命名。
  2. 单一职责: 模块导出一个主要功能或对象时,默认导出更符合逻辑。

适用场景:

  1. 模块只有一个导出: 如一个组件、一个类或一个函数。
  2. 使用频繁的库: 比如 React 组件和 Vue 组件通常使用默认导出。

示例:

// utils.js
export default function calculateSum(a, b) {return a + b;
}// usage.js
import calculateSum from './utils';
console.log(calculateSum(2, 3));  // 输出 5

2.命名导出

优点:

  1. 明确的命名: 在导入时明确知道导入的是什么。
  2. 多个导出: 允许从同一个模块中导出多个函数、对象或变量。
  3. 避免命名冲突: 在导入时可以使用 as 进行重命名,避免冲突。

适用场景:

  1. 模块有多个导出: 比如一个工具函数库。
  2. 公共常量或类型: 例如导出多个相关的常量或类型定义。

示例:

// utils.js
export function calculateSum(a, b) {return a + b;
}export function calculateDifference(a, b) {return a - b;
}// usage.js
import { calculateSum, calculateDifference } from './utils';
console.log(calculateSum(2, 3));  // 输出 5
console.log(calculateDifference(5, 2));  // 输出 3

3.综合使用

在实际项目中,可以结合使用默认导出和命名导出,以便利用两者的优势。例如,一个模块可以有一个默认导出和多个命名导出:

示例:

// mathUtils.js
export default function calculateSum(a, b) {return a + b;
}export function calculateDifference(a, b) {return a - b;
}export const PI = 3.14;

使用:

// usage.js
import calculateSum, { calculateDifference, PI } from './mathUtils';
console.log(calculateSum(2, 3));  // 输出 5
console.log(calculateDifference(5, 2));  // 输出 3
console.log(PI);  // 输出 3.14

总结

  • 默认导出: 适用于模块只有一个主要功能或对象时,导入语法简洁。
  • 命名导出: 适用于模块有多个导出时,提供明确的导入名称和灵活性。
  • 默认导出只能有一个
http://www.lryc.cn/news/392843.html

相关文章:

  • 开发个人Go-ChatGPT--1 项目介绍
  • 皮卡超级壁纸 | 幸运壁纸幸运壁纸app是一款涵盖了热门影视剧、动漫、风景等等资源的装饰工具,
  • 普通集群与镜像集群配置
  • 2024科技文化节程序设计竞赛
  • 玩转Easysearch语法
  • 【密码学】RSA公钥加密算法
  • 【ARMv8/v9 GIC 系列 5.1 -- GIC GICD_CTRL Enable 1 of N Wakeup Function】
  • C++怎么解决不支持字符串枚举?
  • 中英双语介绍四大会计师事务所(Big Four accounting firms)
  • ubuntu 查看联网配置
  • 【数据分享】全国乡村旅游重点镇(乡)数据(Excel/Shp格式/免费获取)
  • 停车场小程序的设计
  • 绿色金融相关数据合集(2007-2024年 具体看数据类型)
  • 【matlab 项目工期优化】基于NSGA2/3的项目工期多目标优化(时间-成本-质量-安全)
  • Python考前复习
  • 虚拟机交叉编译基于ARM平台的opencv(ffmpeg/x264)
  • react之错误边界
  • openEuler系统之使用Keepalived+Nginx部署高可用Web集群
  • 基于图像处理的滑块验证码匹配技术
  • 【JavaEE精炼宝库】文件操作(1)——基本知识 | 操作文件——打开实用性编程的大门
  • 常用排序算法_06_归并排序
  • 14-8 小型语言模型的兴起
  • 【Linux】:进程创建与终止
  • 横截面交易策略:概念与示例
  • 4.2 投影
  • 23种设计模式之装饰者模式
  • 数据结构--单链表实现
  • 2024攻防演练:亚信安全推出MSS/SaaS短期定制服务
  • 基于java+springboot+vue实现的在线课程管理系统(文末源码+Lw)236
  • 每日一更 EFK日志分析系统