模块定义:在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分
模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)
模块加载:加载器的基本原理就是在html的head中插入script标签,通过这种方式加载远程js代码。
其中,模块加载器通过依赖关系来保证代码的加在顺序以及执行顺序。因此开发人员在使用加载器时,不需要关注加载细节,根据以上理论,我们由整体来说,首先以入口三个基本函数来说
var require = function () {
};
require.config = function () {
};
require.define = function () {
};
这三个模块比不可少:
① config用以配置模块与路径的映射,或者还有其他用处
② require为程序入口
③ define设计各个模块,响应require的调度
然后我们这里会有一个创建script标签的方法,并且会监听其onLoad事件
④ loadScript
其次我们加载script标签后,应该有一个全局的模块对象,用于存储已经加载好的模块,于是这里提出了两个需求:
⑤ require.moduleObj 模块存储对象
⑥ Module,模块的构造函数
(function () {
var Module = function () {
this.status = 'loading'; //只具有loading与loaded两个状态
this.depCount = 0; //模块依赖项
this.value = null; //define函数回调执行的返回
};
var loadScript = function (url, callback) {
};
var config = function () {
};
var require = function (deps, callback) {
};
require.config = function (cfg) {
};
var define = function (deps, callback) {
}; })();
模板引擎: JavaScript模板引擎就是帮我们把带有JavaScript代码的伪html语句翻译为html的东东
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档,模板引擎可以让(网站)程序实现界面与数据分离
模板引擎不只是可以让你实现代码分离(业务逻辑代码和用户界面代码),也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享(代码重用),甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能