ES6中import {} 的括号

摘要:
以下是用大括号命名的方法{user},用于导入user.js:import{user}from‘/用户'。上述代码在以下前提下生效:user.js模块中仅存在以下名为user的导出代码,即://user。jsexportconstuser=42。此外,在显式声明命名导出之后,当在另一个js中使用{}引用模块时,import中的模块名称是有意义的,Asfollows://home.jsimport{user}from”/用户“//”是正确的,因为“user.js/用户”//中存在来自“named user”的exportimport{user2}错误!因为“user.js/user”中没有来自“named user2”的exportimport{anyUser}//错误!

es6引用模块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中有如下命名导出为user的export 的代码,也就是:

//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,以及命名导出user2和anyUser。

免责声明:文章转载自《ES6中import {} 的括号》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NetCore项目发布对前端项目进行打包合并发布python 装饰器语法糖(@classmethod @staticmethod @property @name.)原理剖析和运用场景下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

最长有效括号

给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()" 小编的这道题用的暴力法,之后发现自己太水了,之后看了LeetCode的官方题解链接:https...

sublime Text2 快捷键精华版

  Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:选择多行Ctrl+Shi...

Oracle(安装PLSQL、注册、配置环境变量)

1、PLSQL安装 (1)双击plsqldev1000.exe后点击确定:  (2)选择路径(路径不能带有括号、空格、汉字): (3)下一步:  (4)finish:  (5)close:  (6)桌面生成图标:  (7) 双击图标后点击取消:  (8)进入主界面后要进行注册:  (9)点击注册:  (10)tools下的preferen...

vi编辑器的学习使用(七)

vi编辑器学习使用之七vi是一个强大的编辑器,他不仅可以用来处理我们平时的文本工作,他还可以用写程序文件。在vi中有许多命令可以方便的完成我们的程序处理工作。在用vi进行程序处理时,vi充分的显示出来了他的强大之处,他可以实现在语法加亮显示,实现自动缩进,实现括号匹配,还可以在程序中实现查找和跳转。我们可以用这样的命令在vi中打开语法加亮显示的功能::sy...

Java:双括号初始化 /匿名内部类初始化法

偶然见到一种初始化方式,感到十分新奇: //新建一个列表并赋初值A、B、C ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }};...

电子邮件的正则表达式

看似是电子邮件的正则表达式之一w+([- +.]w)*@w+([-.]w+)*.w+([-.]w+)*或者S+@S+.S+都是常用的电子邮件正则表达式RegularExpressionValidator就不用解释了,基础控件,验证输入是否符合[…...] 匹配括号中任何一字符[^…...] 匹配不在括号中的任何一字符w 匹配(a~z,A~Z,0~9)W 匹...