您的位置:首页 > 产品设计 > UI/UE

require.js

2014-02-01 22:18 281 查看
AMD规范(AsynchronousModule Definition",异步模块定义)

require([module],callback);

第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数。

<scriptsrc="js/require.js" data-main="js/main"></script>

data-main属性的作用是,指定网页程序的主模块。在主模块中加载其他依赖模块。

require.config()写在主模块的头部。参数就是一个对象,这个对象的paths属性指定各个模块的加载路径。

require.config({

baseUrl: "js/lib",

    paths: {

      "jquery":"jquery.min",

      "underscore":"underscore.min",

      "backbone": "backbone.min"

    }

  });

require.js加载的模块,采用AMD规范。模块必须采用特定的define()函数来定义。如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中。

define(function (){

    var add = function(x,y){

      return x+y;

    };

    return {

      add: add

    };

  });

如果这个模块还依赖其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性。
define(['myLib'], function(myLib){

    function foo(){

      myLib.doSomething();

    }

    return {

      foo : foo

    };

  });

加载非规范的模块

require.config({

    shim: {

      'underscore':{

        exports: '_'

      },

      'backbone': {

        deps: ['underscore', 'jquery'],

        exports: 'Backbone'

      }

    }

  });

require.config()接受一个配置对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来配置不兼容的模块。具 体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: