import default默认导出和命令导出


这是默认导入:

// B.js
import A from './A'复制代码

只有 A具有默认导出时才有效:

// A.js
export default 42复制代码

在这种情况下,导入时为其指定的名称无关紧要:

// B.js
import A from './A'
import MyA from './A'
import Something from './A'复制代码

因为它将始终解析为默认导出任何内容 A

这是一个名为import的导入 A

import { A } from './A'复制代码

它仅在 A包含名为的导出 A时才有效:

export const A = 42复制代码

在这种情况下,名称很重要,因为您通过其导出名称导入
特定的东西:

// B.js
import { A } from './A'
import { myA } from './A' // Doesn't work!
import { Something } from './A' // Doesn't work!复制代码

要使这些工作,您可以将相应的命名导出添加到 A

// A.js
export const A = 42
export const myA = 43
export const Something = 44复制代码

一个模块只能有一个默认导出,但是你可以拥有
多个命名导出(零,一,二或许多)。您可以将它们全部导入:

// B.js
import A, { myA, Something } from './A'复制代码

在这里,我们将默认导出导入为 A,并分别命名为exports myASomething

// A.js
export default 42
export const myA = 43
export const Something = 44复制代码

我们还可以在导入时为它们分配所有不同的名称:

// B.js
import X, { myA as myX, Something as XSomething } from './A'复制代码

默认导出倾向于用于您通常希望从模块获得的任何内容。
命名导出往往用于可能很方便的实用程序,但并不总是必需的。
但是,您可以选择如何导出内容:例如,模块可能根本没有默认导出。

引用David Herman

:ECMAScript 6支持单/默认导出样式,并为导入默认值提供最甜蜜的语法。
导入命名导出可以,甚至应该略微简洁。

但是在TypeScript中,由于重构,命名导出很受欢迎。
例如,如果默认导出类并重命名,则类名将仅在该文件中更改而不在其他引用中更改,并且将在所有引用中重命名命名的导出类名。
实用程序也首选命名导出。

总体使用你喜欢的任何。

额外

默认导出实际上是名为default的命名导出,因此可以将默认导出导入为:

import {default as Sample} from '../Sample.js';复制代码


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值