ES6之模块化导入导出
1、概述 在js的历史上一直没有模块(module)体系,无法将一个大程序拆分成相互依赖的小文件,再用简单的方法拼装起来,这对开发大型的、复杂的项目形成了巨大障碍。 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能, 而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。 2、ES6 模块(module)的设计思想是什么? 那就是尽量的静态化,使得编译时就能确定依赖关系 3、CommCommonJS模块 和 ES6 模块比较 看两段代码 // 导出 node 文件系统的几个方法 let {stat,exists,readFile} = require('fs');注意:这段代码实际上是加载了整个 fs 模块。这种加载方式称为“运行时加载”,因为只有运行时才能得到这个对象。导致完全没办法在编译时做“静态优化”。 // ES6 模块 import {stat,exists,readFile} from 'fs'注意:这段代码只导出了三个方法,其他的方法没有加载。这种方式称为“编译时加载”,ES6可以在编译时就完成模块加载,效率要比CommonJS模块的加载方式高。 4、模块功能命令之 export 和