📅  最后修改于: 2021-01-01 04:16:55             🧑  作者: Mango
模块是写在文件中的JavaScript代码的一部分。 JavaScript模块通过将整个代码划分为可以从任何地方导入的模块,来帮助我们将代码模块化。模块使维护代码,调试代码和重用代码段变得容易。每个模块都是一段代码,一旦加载,便会执行。
ES6中的模块是必不可少的概念。尽管并不是到处都有它,但是今天我们可以使用它,并且可以将其转换为ES5代码。编译是将代码从一种语言转换为等效语言的过程。 ES6模块转译器工具负责获取ES6模块,并将其转换为AMD (异步模块定义是JavaScript编程语言的规范)或CommonJS风格的ES5兼容代码。
在构建过程中,我们可以使用Gulp,Babel,Grunt或其他编译器来编译模块。除非文件将其导出,否则模块中的变量和函数将无法使用。
JavaScript允许我们使用export关键字导出函数,对象,类和原始值。有两种出口:
要导入模块,我们需要使用import关键字。从模块导出的值可以使用import关键字导入。我们可以在另一个模块中导入导出的变量,函数和类。要导入模块,我们只需指定它们的路径。
导入命名的导出时,必须使用与相应对象相同的名称。当您导入默认导出时,我们可以使用相应对象的任何名称。
让我们详细说明这些进出口。
命名出口以其名称来区分。使用命名导出导出的类,变量或任何函数只能使用相同的名称导入。
可以使用命名的export导入和导出多个变量和函数。
句法
让我们看看在类,函数或变量中使用命名导出的语法。下面我们展示了如何使用命名的export分别导出类,变量和函数。
//Named export in class
class Nokia{
//properties
//methods
}
export {Nokia}; //Named export
//Named export in functions
function show(){
}
export {show};
//Named export in Variables
const a = 10;
export {a};
我们可以在一个模块中应用多个命名导出。我们可以在模块中使用多个命名导出的语法,如下所示:
Mobile.js
class Nokia{
//properties
//methods
}
function show(){
}
const a = 10;
export {Nokia, show};
让我们看看如何导入命名的出口。
要导入由另一个模块导出的绑定,我们必须使用静态import语句。无论我们是否以严格模式声明它们,导入的模块始终处于严格模式下。
句法
App.js
import {Nokia, show} from './Mobile.js';
全部汇入
如果要同时导入所有导出语句,则可以分别导入它们。
但是,当我们有如此多的命名出口时,这将很难。因此,为了使其更容易,我们可以按以下步骤进行操作:
import * as device from './Mobile.js'; // Here, the device is an alias, and Mobile.js is the module name.
假设,我们在模块Mobile.js中定义了一个诺基亚类,如果要使用它,那么通过使用别名,我们可以执行以下操作:
device.Nokia //if we have a class Nokia
device.show // if we have a function show
device.a // if we have a variable a
让我们尝试在一个示例中了解命名的导出和导入。
我们必须制作两个JavaScript模块来执行导出和导入。在第一个模块中,我们导出类,函数和变量。在第二个模块中,我们将使用命名的import导入它们。
在这里,我们正在创建两个JavaScript模块,其中第一个JavaScript模块是Mobile.js,第二个模块名称是App.js。我们还将创建一个HTML文件Example.html。然后,我们将在服务器中执行此.html文件。
接下来,我们必须使用
ES6 Modules import and export