JS基础之import导入模块的时候,{}什么时候用?

问:vue中引入模块的时候,有的时候需要{},有的时候不需要,具体是依据什么决定的?

我们导入时,是否需要使用{},其实取决于被引用的模块,是怎么导出的,

模块导出,有两种方式

  • 默认导出
  • 命名导出

当引入的模块,采用的默认导出的时候,我们导入的时候,不需要使用{},同时,我们导入的模块可以随意命名。

当引入的模块,采用的命名导出的时候,我们导入的时候,需要使用{},同时,我们导入的时候,必须使用解构语法来导入,也就是说名字要和导出的时候定义的名字一致,如果我们想要起别名,需要使用as来编写。

详解如下:

在 Vue 或者更广泛地说在 JavaScript 中(特别是使用 ES6 模块系统时),是否需要使用 {} 来引入模块取决于你想要导入的内容以及该内容是如何导出的。这主要分为两种情况:默认导出和命名导出。

  1. 默认导出(Default Export)
  • 当一个模块使用 export default 语法导出时,你可以不使用 {} 来导入这个模块。
  • 默认导出非常灵活,因为一个文件中只能有一个默认导出,并且在导入时可以任意命名。例如,如果你有一个名为 MyComponent.vue 的文件,默认导出了一个组件,那么你可以这样导入它:
javascript
复制代码
import MyComponent from './MyComponent.vue';
  • 注意,这里的 MyComponent 名字是可以自定义的,因为它是一个默认导出。
  1. 命名导出(Named Export)
  • 如果一个模块使用了 export 而不是 export default,那么它就是一个命名导出。在这种情况下,你需要使用 {} 来明确指出你想要导入的具体成员。
  • 一个文件中可以有多个命名导出。当你导入这些导出时,必须使用解构赋值的语法来指定你想要导入的成员的名字。例如,假设某个文件中有如下导出:
javascript
复制代码
export const MyComponent = {} export const AnotherComponent = {}

那么你可以这样导入它们:

javascript
复制代码
import { MyComponent, AnotherComponent } from './SomeFile.js';
  • 如果你想为导入的成员起别名,还可以这样做:
javascript
复制代码
import { MyComponent as MyCustomComponent } from './SomeFile.js';

✅ 总结:导入是否需要 {}

导出方式使用语法导入方式是否需要 {}备注
默认导出export default xxximport 名字 from '路径'❌ 不需要名字可以自定义
命名导出export const xxx = ...import {xxx} from '路径'✅ 需要名字必须一致,可用 as 起别名

🧠 举个例子对比一下:

✅ 默认导出示例:

javascript
复制代码
// MyComponent.vue export default { name: 'MyComponent', // ... }
javascript
复制代码
// 引入时不需要 {} import MyComponent from './MyComponent.vue';

甚至你可以写成:

javascript
复制代码
import AnyNameYouLike from './MyComponent.vue';

因为它是默认导出。


✅ 命名导出示例:

javascript
复制代码
// utils.js export const add = (a, b) => a + b; export const subtract = (a, b) => a - b;
javascript
复制代码
// 引入时必须用 {} import { add, subtract } from './utils.js';

如果你想换个名字:

javascript
复制代码
import { add as sum } from './utils.js';

💡 补充说明:

  1. 一个模块可以有多个命名导出,但只能有一个默认导出。
  2. 你也可以同时默认导出 + 命名导出,例如:
javascript
复制代码
export default { /* 默认导出的内容 */ }; export const helper = () => {}; // 命名导出

引入时:

javascript
复制代码
import MyDefault, { helper } from './module.js';
  1. Vue 单文件组件通常使用默认导出,所以你看到的大多是这种形式:
javascript
复制代码
import MyComponent from './MyComponent.vue';
  1. 如果你不确定模块怎么导出的?
  • 查看文档或源码;
  • 使用 IDE(如 VSCode)智能提示;
  • 尝试导入并观察错误提示。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
凯歌
下载 APP