命名导出和默认导出的用法区别

背景:

1、在编写代码的时候,build打包报警告,使用GPT询问之后得到命名导出和默认导出的区别,因此有想法去了解下命名导出和默认导出的用法区别。

复制代码
export 'default' (imported as 'store') was not found in '@/content-scripts/store' (possible exports: store)

结论:

1. 命名导出(Named Export)

  • 使用 import { store } 是导入一个 命名导出 的模块成员。
  • 命名导出允许从一个文件中导出多个不同的成员,每个成员都需要在导入时用花括号指定其名字。
命名导出示例:

store.js

复制代码
// 导出多个命名成员
export const store = {
  // store 的内容
};

export const anotherStore = {
  // anotherStore 的内容
};

导入方式:

复制代码
// 使用花括号导入指定的命名导出
import { store, anotherStore } from '@/content-scripts/store';

在这种情况下,store 和 anotherStore 是 明确命名的导出,并且可以同时导入多个命名导出。

2. 默认导出(Default Export)

  • 使用 import store 是导入一个 默认导出 的模块成员。
  • 默认导出文件中只能有一个导出项,不需要花括号,并且导入时可以自定义导入名称(即导入时的名字不必与导出时的名字相同)。
默认导出示例:

store.js:

复制代码
// 仅导出一个默认成员
const store = {
  // store 的内容
};

export default store;

导入方式:

复制代码
// 不使用花括号,并且可以重命名导入的内容
import store from '@/content-scripts/store';

在这种情况下,store 是 默认导出 ,文件中只能有一个默认导出,而且导入时可以随意命名(例如你可以用 import myStore from '@/content-scripts/store' 这样的导入)。

3. 关键区别总结

  • import { store } : 用于导入 命名导出,并且必须与导出的名字完全一致,且可以同时导入多个命名成员。
  • import store : 用于导入 默认导出,只需导出一个成员,导入时可以重命名。
相关推荐
代码什么用7 小时前
Spring对IoC的实现
数据库·spring
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn9 小时前
框架性能优化
前端
hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday9 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码10 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
小米里的大麦10 小时前
16 MySQL 事务
数据库·mysql
西柚小萌新10 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
回眸&啤酒鸭10 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能