ES6(react)中import导入时,有的带花括号{},有的不带

在使用import语法引用模块时,如何正确使用{}

例如:有两个文件,home.js、user.js

当需要在home.js中引入user.js的时候

//home.js
import user from './user';

对于上面的这种引入方法,只有user.js文件中需要提供默认的export defulat进行导出(必须是默认导出)这样在home.js文件中就可以使用user了。如下

//user.js
export default 'nihao'

在这种不使用{}来引用模块的情况下,import模块时的命名是随意的,即如下三种引用命名都是正确的:

// home.js
import user from './user'
import user2 from './user'
import anyUser from './user'

因为它总是会解析到user.js中默认的export default

而下面是使用了花括号命名的方法{user}来导入user.js:

import { user } from './user'

上面代码生效的前提是,只有在模块user.js中有如下命名导出为userexport 的代码,也就是:

//user.js
export const user = 42

而且,在明确声明了命名导出后,那么在另一个js中使用{}引用模块时,import时的模块命名是有意义的,如下:

// home.js
import { user } from './user'           // 正确,因为user.js中有命名为user的export
import { user2 } from './user'          // 错误!因为user.js中没有命名为user2的export
import { anyUser } from './user'        // 错误!因为user.js中没有命名为anyUser的export

要想上述代码正确执行,你需要明确声明每一个命名导出:

一个模块中只能有一个默认导出export default,但是却可以有任意命名导出(0个、1个、多个),你也可以如下,一次性将他们导入:

// user.js
import user, { user2, anyUser } from './user'

这里我们使用导入默认导出user,以及命名导出user2anyUser

【右上角点个赞,谢谢】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值