以前的代码,没有类,也没有模块(技术意义上的“模块”),有点“有需求,而后产生代码”的意思,读起来比较“直”。“直”,也是小白程序员的代码的共同味道:所写即所想。
新框架,引入了类(class),模块(module),一定程度上说,需要换一种思维方式,需要一点“拐弯”。“先有框架,然后为‘需求’产生代码”
本文先说module的实现机理,后续文章再谈class。(本系列文章,仅就关键原理进行说明,更多的实现细节、语法,需参考相关文档、代码)
requirejs
zy框架使用requirejs来实现模块化。所需的两个关键方法:define / require
- define: 定义module
- require: 引入module
// moduleX.js
define(['some/other/module1', 'some/other/module2'], function(mod1, mod2) {
// some/other/module1, some/other/module2为本模块所依赖的模块,加载完后
// 分别以变量mod1, mod2被使用
// 你想返回的任何object, 包括function
var x = {some: 'hello'};
return x;
})
// main.js
function main() {
require(['moduleX'], function(modX) {
console.log(modX.some); // output 'hello'
})
}
main();
That's all. 简单说来就是:
定义module用define,引用module用require.
web.git中有个demo:m/src/demo/require,呈现的是本文的意思。