- <script src=http://developer.51cto.com/art/201705/"js/require.js"></script>
data-main属性的感化是,指定网页法度榜样的主模块。在上例中,就是js目次下面的main.js,这个文件会第一个被require.js加载。因为require.js默惹9依υ?件后缀名是js,所以可以把main.js简写成main。
require.config()的设备
应用require.config()办法,我们可以对模块的加载行动进行自定义。require.config()就写在主模块(main.js)的头晨。参数就是一个对象,这个对象的paths属性指定各个模块的加载路径。
- require.config({
- baseUrl: "js/lib",
- paths: {
- "jquery": "jquery.min",
- "underscore": "underscore.min",
- "backbone": "backbone.min"
- }
- });
- var module1 = (function(){
- var _count = 0;
- var m1 = function(){
- //...
- };
- var m2 = function(){
- //...
- };
- return {
- m1 : m1,
- m2 : m2
- };
- })();
AMD模块的写法
模块必须采取特定的define()函数来定义。如不雅一个模块不依附其他模块,那么可以直接定义在define()函数之中。
- // math.js
- define(function (){
- var add = function (x,y){
- return x+y;
- };
- return {
- add: add
- };
- });
加载办法如下:
应用"急速履行函数"(Immediately-Invoked Function Expression,IIFE),可以达到不裸露私有成员的目标。
- // main.js
- require(['math'], function (math){
- alert(math.add(1,1));
- });
如不雅这个模块还依附其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依附性。
- define(['myLib'], function(myLib){
- function foo(){
- myLib.doSomething();
- }
- return {
- foo : foo
- };
- });
当require()函数加载膳绫擎这个模块的时刻,就会先加载myLib.js文件。
define()的完全定义:
关于define函数的name和require函数的依附名称之间的关系
1)define(name,[] , callback); 这个name可以省掉落,默认是文件名称;当然也可以自定义,一旦我们定义了name,根据源代码我们可以发明define函数内部其实就是把这个name以及依附模块、回调函数作为一个对象存储在全局的数组傍边,也就是 defQueue.push([name,deps,callback]);那么这个name就是这个组件注册的的ID!
推荐阅读
如何安装pandom : 一个针对Linux的真随机数生成器
本教程只针对 amd64/x86_64 架构 Linux 内核版本大年夜于等于 2.6.9 的体系。本文将解释若何安装 pandom,这是一个由 ncomputers.org 保护的准时颤抖真随机数生成器。我们老是建议在应用>>>详细阅读
本文标题:RequireJS模块化编程详解
地址:http://www.17bianji.com/lsqh/35293.html
1/2 1