在 ES6 中导入带或不带大括号 [重复]
Posted
技术标签:
【中文标题】在 ES6 中导入带或不带大括号 [重复]【英文标题】:Import with or without curly brackets in ES6 [duplicate] 【发布时间】:2018-03-16 17:41:42 【问题描述】:有什么区别:
import Title from './title.js'
和
import Title from './title.js'
?
我认为它与export default Title;
和export const Title;
有一些联系,但我不知道。
【问题讨论】:
当您使用导出默认标题时,您不需要 我在猜测,但有对此的解释吗? developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 这个问题不是angularjs特有的,而是和ES6及以上相关的 【参考方案1】:一个模块可以声明多个导出。例如export const Title;
和export const SubTitle;
。当您import
这样的模块时,您会得到一个Object
,其键是您声明的export
s。
然后您可以使用函数参数对象解构(ES6 中提供的一项功能)从对象中仅选择您需要的导出。
请注意,如果您使用export default
,则参数解构不可用,因为import
不一定会返回一个对象,除非您导出的是该对象。
【讨论】:
【参考方案2】:如 developer.mozilla.org 中给出的
可以有一个默认导出(无论是对象, 函数、类等)。然后可以使用 import 语句 导入此类默认值。
最简单的版本直接导入默认:
import myDefault from '/modules/my-module.js';
参考文献:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
【讨论】:
以上是关于在 ES6 中导入带或不带大括号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
带/不带大括号的 C# Switch 语句....有啥区别?