模块化:将代码拆分为独立的块,然后将这些块连接起来通过模块模式来实现。使用模块化的方式更加方便代码的维护,使代码更利于复用
模块化模式
这种模式背后的思想很简单:把逻辑分块,各自封装,相互独立,每个块决定对外暴露什么,同时自行决定引入执行哪些外部代码。
实际操作中,将不同的模块用单独的js文件封装,(ES6以前)通过exports.property的方式向外输出指定代码。又通过require(文件路径)的方式引入文件。
CommonJs
在ES6模块化规范推出之前,浏览器原生不支持模块的行为,ECMAScript同样不支持模块。社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。
CommonJs主要在服务器端实现代码模块化组织,所以在Node.js中采用 CommonJS 模块规范
也可以定义浏览器中使用的模块依赖,CommonJs语法不能在浏览器中直接运行
模块依赖
CommonJs模块定义使用require( )传递一个文件路径来指定依赖,返回一个对象。即是指定引入哪些执行的代码,node会根据该路径引入模块,如果使用相对路径,必须以 . 或者 . . 开头
模块定义
在每一个模块定义的代码都是在包装在一个函数中,所以这些实际上在函数内部的变量无法在外部得以访问。而在CommonJs中使用exports对象定义自己的公共API,即使定义那些向外暴露的代码
模块标识
使用require( )引入外部模块的方式就是利用模块标识
核心模块:模块名字作为标识
文件模块:用户自己创建的模块,要引入文件的路径
演示
1 | // 01.js 即是模块01 |
最后
ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
实际中考虑和使用较多的是ES6模块化功能
本文作者: moofing
本文链接: https://moofing.gitee.io/posts/f2800037.html
版权声明: 本文采用 CC BY-NC-SA 4.0进行许可,转载或引用时请遵守该协议