语法区别
- 命名导出:可以有多个命名导出,使用
export
关键字直接声明要导出的变量、函数或类型。
// 命名导出变量
export const name = 'John';
// 命名导出函数
export function greet() {
return 'Hello!';
}
- 默认导出:一个模块只能有一个默认导出,使用
export default
关键字。
// 默认导出函数
export default function () {
return 'This is a default export';
}
使用场景区别
- 命名导出:适用于模块需要导出多个相关的功能或值的场景,比如一个工具模块导出多个工具函数。例如一个数学工具模块,可能导出
add
、subtract
、multiply
等多个函数。
- 默认导出:适用于模块主要导出一个“主”内容的场景,比如一个组件模块,通常默认导出该组件。例如一个
Button
组件模块,默认导出Button
组件本身。
导入方式区别
- 命名导出:导入时需要使用花括号指定要导入的名称,名称必须与导出时一致。
import { name, greet } from './module';
console.log(name);
console.log(greet());
- 默认导出:导入时不需要花括号,可自定义导入名称。
import customName from './module';
console.log(customName());