当前位置: 首页 > 面试题库 >

ES6中的export const与export default的比较

淳于俊迈
2023-03-14
问题内容

我正在尝试确定这两者之间是否有较大区别,而不是export default仅通过以下操作即可导入:

import myItem from 'myItem';

使用export const我可以做到:

import { myItem } from 'myItem';

我想知道除此以外是否还有其他差异和/或用例。


问题答案:

这是命名导出与默认导出。export const是导出一个或多个const声明的命名导出。

要强调的是:这里重要的是用于声明一个或多个const声明的export关键字constexport也可以应用于其他声明,例如类或函数声明。

默认导出(export default

每个文件可以有一个默认导出。导入时,您必须指定一个名称并像这样进行导入:

import MyDefaultExport from "./MyFileWithADefaultExport";

您可以给它取任何您喜欢的名字。

命名为出口(export

使用命名导出,每个文件可以有多个命名导出。然后导入要用大括号括起来的特定导出:

// ex. importing multiple exports:
import { MyClass, MyOtherClass } from "./MyClass";
// ex. giving a named import a different name by using "as":
import { MyClass2 as MyClass2Alias } from "./MyClass2";

// use MyClass, MyOtherClass, and MyClass2Alias here

也可以在同一条语句中使用默认值和命名导入:

import MyDefaultExport, { MyClass, MyOtherClass} from "./MyClass";

命名空间导入

也可以从对象上的文件中导入所有内容:

import * as MyClasses from "./MyClass";
// use MyClasses.MyClass, MyClasses.MyOtherClass and MyClasses.default here

笔记

  • 语法更倾向于默认导出,因为它的用例更常见,因为它更简洁。
  • 默认导出实际上是具有名称的命名导出,default因此您可以使用命名导入来导入它:
    import { default as MyDefaultExport } from "./MyFileWithADefaultExport";
    


 类似资料:
  • 本文向大家介绍详解ES6中的Map与Set集合,包括了详解ES6中的Map与Set集合的使用技巧和注意事项,需要的朋友参考一下 集合的概念以及和数组的区别 其实数组也是集合, 只不过数组的索引是数值类型.当想用非数值类型作为索引时, 数组就无法满足需要了. 而 Map 集合可以保存多个键-值对(key-value),  Set 集合可以保存多个元素. 对Map 和 Set 一般不会逐一遍历其中的元

  • 问题内容: Node 和ES6 之间有什么区别?我试图弄清楚为什么在Node.js 6.2.2中尝试出现“ __不是构造函数”错误。 什么有效 什么 不 工作 问题答案: 问题是 如何在CommonJS中模拟ES6模块 您如何导入模块 ES6到CommonJS 在撰写本文时,没有环境本地支持ES6模块。在Node.js中使用它们时,您需要使用Babel之类的东西将模块转换为CommonJS。但是那

  • 首先要明确的是处理面向对象,还有很多编程语言范式,Python 本身就是一个支持面相对象和函数式编程的多范式编程语言。 编程范式的存在是为了解决的代码复用和共享问题。 JavaScript 主要是一门面向原型的编程语言,但是吸收了众多函数式编程的思想,却缺乏常见的函数式编程基础功能。 const 与常量 在 ES5 及之前的规范中,JS 声明对象时只能使用 var,ES6 中新增了 const 和

  • 问题内容: 我注意到我正在编写的Python脚本表现得很松散,并将其追溯到无限循环,其中循环条件为。在调试器中运行它,结果发现那条线实际上是。当我将其更改为!=’‘而不是时,它工作正常。 另外,即使比较或值,通常还是最好还是默认使用吗?我一直喜欢使用,因为我发现它在美学上更令人愉悦和pythonic(这就是我陷入这个陷阱的方式…),但是我想知道是否打算仅在你关心找到两个对象时才保留它?具有相同ID

  • 问题内容: 我目前正在评估基于Java的安全框架,我是Spring 3.0用户,因此似乎似乎SpringSecurity是正确的选择,但是Spring安全性似乎受到过分复杂的困扰,它似乎并没有使安全性易于实现, Shiro似乎更加连贯,更容易理解。我正在寻找这两个框架之间的利弊清单。 问题答案: 我也同意Spring Security对我来说感觉太复杂了。当然,他们已经做了一些降低复杂性的事情,例

  • 根据Android文档,finish()的功能与“后退”按钮的功能完全相同。基本上,当我调用finish()时,会调用onStop()。 我试图重写onStateSaveInstance()以保存当前状态,但从未调用它。但是,如果通过创建新的Intent并使用startActivity()转到上一个活动,则会调用onStateSaveInstance()方法。这有什么原因吗?