
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
模块化的编程开发技术应用是许多web前端编程开发程序员都应该熟练掌握并应用的一个编程开发技术,而本文我们就通过案例分析来简单了解一下,web前端模块化编程类型分析。
一、CommonJS
nodeJS是commonJS规范的主要实践者,他有四个重要的环境变量为模块化的实现提供支持:module,exports,require,global
1.概述
Node应用由模块组成,采用CommonJS规范。每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量,函数,类都是私有的,对其他文件不可见。在服务器端,模块的加载是运行时同步加载的;在浏览器端,模块需要提前打包编译。
2.特点
所有代码都运行在模块作用域,不会污染全局作用域。
模块可以多次加载,但是只会在一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
模块加载的顺序,按照其在代码中出现的顺序。
3.基本语法
暴露模块:module.exports=value或exports.xxx=value
引入模块:require(xxx),如果是三方模块,xxx为模块名;如果是自定义模块,xxx为模块文件路径
4.模块的加载机制
CommonJS模块的加载机制是,输入的是被输出的值的拷贝。也就是说,一旦输出一个值,模块内部的变化就影响不到这个值。这点与es6模块化有重大差异。
二、ES6模块化机制
ES6模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS和AMD模块,都只能在运行时确定这些东西。
1.基本语法
模块功能主要由两个命令组成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。exportdefault命令,为模块指定默认输出。
一个模块就是一个独立的文件。该文件内部所有的变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
2.特点
ES6模块是编译时加载,使得静态分析称为可能
不再需要UMD模块格式了,将来服务器和浏览器都会支持ES6模块格式。目前,通过各种工具库,其实已经做到了这一点。
将来浏览器的新API就能用模块格式提供,不再必须做成全局变量或者navigator对象的属性。
不再需要对象作为命名空间(比如Math对象),未来这些功能可以通过模块提供。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。