如何在 ES6 中使用模块化的方式来组织代码

阅读时长 4 分钟读完

作为现代网页开发的重要一环,在前端领域中,模块化开发已经成为主流的开发模式,它能够增强代码复用性、提升开发效率,还能够在日后维护阶段中减少代码的耦合性和维护成本。

ES6 中推出了标准的模块系统,使用 ES6 的模块系统可以使我们更方便地进行代码组织和管理,其中包括了向外暴露代码的方式、导入别的模块等功能。

导出

在 ES6 中可以使用 export 关键字来导出函数、变量、类、对象等导出的对象指定可以被外部代码引用的属性,常常会使用以下两种方式进行导出。

默认导出

使用 export default 可以导出一个默认的值。

-- -------------------- ---- -------
-- ---------
------ ------- ----- ------ -
    ----------------- ---- -
        --------- - -----
        -------- - ----
    -
    ----- -
        --------------- ---- -- ------------- --- ----------- ----- -------
    -
-
展开代码

当然,一个模块可以只有一个默认输出,如果需要导出多个,可以使用对象的方式。

命名导出

命名导出即通过指定变量名或函数名等形式导出模块中的变量、函数等内容,并在外部代码中使用时需要使用对应的名字。

导入

在 ES6 中使用 import 关键字来引入模块,就是从模块中加载到当前模块中使用,与导出类似,引入时也包括了两种方式,即默认引入和命名引入。

默认引入

使用 import 可以引入之前默认导出的值。

-- -------------------- ---- -------
-- ---------
------ ------- ----- ------ -
    ----------------- ---- -
        --------- - -----
        -------- - ----
    -
    ----- -
        --------------- ---- -- ------------- --- ----------- ----- -------
    -
-
展开代码

命名引入

命名引入需要在导入时声明与导出相同的变量名、函数名,以便使用时能够直接调用。

模块路径与 loader

在 Webpack 等模块打包工具中,虽然都支持 ES6 的模块化语法,但它们仍然需要一个另外的东西来定义模块路径,因为 ES6 并没有提供类似 CommonJS 中的 ${basePath}/xxx.js 的语法来自定义查找路径。

同时,由于 ES6 模块化对代码进行了封装,所以需要通过 loader 去加载和解析这些代码,目前比较流行的有 babel-loader 以及 ES6 Module Transpiler。

结语

ES6 模块化标准是接下来前端领域中必不可少的一项技术,使用了它可以大大提升代码的可读性和可维护性,因此对于前端开发者来说更加应该去了解和掌握使用这项技术。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c87c58e46428fe9ef0df87

纠错
反馈

纠错反馈