码迷,mamicode.com
首页 > Web开发 > 详细

requirejs使用

时间:2016-07-12 21:24:23      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

 

实现模块化、按需加载。

一.配置参数

1.baseUrl以一个相对于baseUrl的地址来加载所有的代码。

  data-main,使用它来启动脚本加载过程,而baseUrl一般设置到与该属性相一致的目录。也可以通过config来配置。如下:

如果没有显式指定config及data-main,则默认的baseUrl为包含RequireJS的那个HTML页面的所属目录。

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

2.定义模块:

defined:

define(["my/cart", "my/inventory"],
    function(cart, inventory) {
        //return a function to define "foo/title".
        //It gets or sets the window title.
        return function(title) {
            return title ? (window.title = title) :
                   inventory.storeName + ‘ ‘ + cart.name;
        }
    }
)

3.paths 

path映射那些不直接放置于baseUrl下的模块名。设置path时起始位置是相对于baseUrl的,除非该path设置以"/"开头或含有URL协议(如http:)。

4.shim: 为那些没有使用define()来声明依赖关系、设置模块的"浏览器全局变量注入"型脚本做依赖和导出配置。

RequireJS 2.0.*中,shim配置中的"exports"属性可以是一个函数而不是字串。这种情况下它就起到上述示例中的"init"属性的功能。 RequireJS 2.1.0+中加入了"init"承接库加载后的初始工作,以使exports作为字串值被enforceDefine所使用。

那些仅作为jQuery或Backbone的插件存在而不导出任何模块变量的"模块"们,shim配置可简单设置为依赖数组:

5.map: 对于给定的模块前缀,使用一个不同的模块ID来加载该模块。

另外在map中支持“*”,意思是“对于所有的模块加载,使用本map配置”。如果还有更细化的map配置,会优先于“*”配置。

requirejs.config({
    map: {
        ‘*‘: {
            ‘foo‘: ‘foo1.2‘
        },
        ‘some/oldmodule‘: {
            ‘foo‘: ‘foo1.0‘
        }
    }
});

意思是除了“some/oldmodule”外的所有模块,当要用“foo”时,使用“foo1.2”来替代。对于“some/oldmodule”自己,则使用“foo1.0”。

 

requirejs使用

标签:

原文地址:http://www.cnblogs.com/rainbow661314/p/5664707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!