likes
comments
collection
share

import后面加上大括号{}和不带大括号有什么区别?"在JavaScript中,`import`语句用于从其他模块引入

作者站长头像
站长
· 阅读数 17

"在JavaScript中,import语句用于从其他模块引入功能。import后面加上大括号 {} 和不带大括号的区别在于引入的内容类型。

带大括号的 import

使用大括号的 import 语法用于引入具名导出(named exports)。具名导出允许在模块中导出多个变量、函数或类。引入时,需要使用大括号指定要引入的具体导出名称。

示例:

// module.js
export const foo = 'foo';
export const bar = 'bar';

// main.js
import { foo, bar } from './module.js';

console.log(foo); // 输出: 'foo'
console.log(bar); // 输出: 'bar'

在上述示例中,foobar 是在 module.js 文件中具名导出的变量。在 main.js 中使用大括号引入这两个具名导出。

如果尝试引入未导出的变量,将会抛出错误。

import { baz } from './module.js'; // 报错: 'baz' is not defined

不带大括号的 import

不带大括号的 import 语法用于引入默认导出(default export)。每个模块只能有一个默认导出,通常用于导出一个主要的功能。

示例:

// module.js
const foo = 'foo';
export default foo;

// main.js
import foo from './module.js';

console.log(foo); // 输出: 'foo'

在这个例子中,foomodule.js 的默认导出。引入时不需要使用大括号。可以为默认导出指定任意名称。

// module.js
export default function() {
  console.log('Hello, world!');
}

// main.js
import greet from './module.js';

greet(); // 输出: 'Hello, world!'

混合使用

一个模块可以同时具有具名导出和默认导出。引入时,可以同时使用大括号和不带大括号的方式。

示例:

// module.js
export const foo = 'foo';
export const bar = 'bar';
export default function() {
  console.log('Hello, world!');
}

// main.js
import greet, { foo, bar } from './module.js';

console.log(foo); // 输出: 'foo'
greet(); // 输出: 'Hello, world!'

总结

  • 带大括号的 import 用于具名导出,允许引入多个导出。
  • 不带大括号的 import 用于默认导出,每个模块只能有一个。
  • 可以在同一个模块中同时使用具名导出和默认导出。"
转载自:https://juejin.cn/post/7415197972008812556
评论
请登录