首页 > 技术文章 > JavaScript + HTML AMD(Require.js) 多页面组织方式

nuets 2018-12-15 00:00 原文

例子压缩包点此下载

RequireJS 是一种用于客户端的 AMD 方式的 JavaScript 模块管理库。

 CommonJS, AMD 这俩货可在TypeScript的tsconfig.json中的module项指定,其区别可以简单认为,CommonJS规范一般给服务端用的(也就是Node.js),没有异步装载概念,AMD一般给客户端互联网浏览器用的(Require.js可以支持AMD),有异步转载概念。

CommonJS老家在这里 http://www.commonjs.org/   https://github.com/commonjs/commonjs

AMD老家在这里 https://github.com/amdjs/amdjs-api     

也可以参考这里

https://www.cnblogs.com/littlebirdlbw/p/5670633.html

https://www.cnblogs.com/chenguangliang/p/5856701.html

RequireJS 的特点是凡是使用它管理的JavaScript模块,需要JavaScript模块修改自己的实现适配RequireJS, 一堆堆的define、require语句(烦人)。但如果用 TypeScript 开发再编译成 JavaScript,无需特别适配(喜人),只需把 tsconfig.json 里面的 "module" 从 "commonjs" 修改成 "amd" 即可。如果不理解 TypeScript ,无需深究,记住这个知识点就可以。

RequireJS官网

https://requirejs.org/

RequireJS GitHub地址

https://github.com/requirejs/requirejs

国内有一个中文网站

http://www.requirejs.cn/

这里提供一个完整的RequireJS和JavaScript模块结合的例子,管中窥豹。

about.html、index.html、main.js、require.js、util.js

=============================================

about.html

------------------------------------------------------------------------------------------------

<a href="index.html">Jump To index.html</a>

 

=============================================

index.html

------------------------------------------------------------------------------------------------

<html>
<head>
<title>INDEX</title>
</head>
<body>
Hello Index!
<br>
<a href="about.html">Jump To about.html</a>
<br>
<p id=myp></p>
<script data-main="main" src="require.js"></script>
</body>
</html>

 

=============================================

main.js

------------------------------------------------------------------------------------------------

requirejs(["util"], function(util) {
    var c = util.Add(100, 200);
    //window.alert(c);
    //document.write(c); 这个执行时刻在 window.onload 之后,会清空文档
    document.getElementById("myp").innerText = c + ", " + new Date();
});

=============================================

require.js  这个是官方版本 2.3.6,原版,见压缩包

 

=============================================

util.js

------------------------------------------------------------------------------------------------

define(function () {
    return {
        Add: function (a, b) {
            return a + b;
        }
    };
});

推荐阅读