requireJS使用--超详细

来源:互联网 发布:遗传算法 游戏 编辑:程序博客网 时间:2024/06/07 10:10

1.下载requireJS   (百度云地址链接:http://pan.baidu.com/s/1kUK0EY7 密码:81o0)

2.在下载的requireJS末尾处    req(cfg);}(this));后加入下面的一段话

var CONTEXTPATH = "http://localhost:8008";var requireConfig = {    baseUrl: CONTEXTPATH + "/public/js/apps",    paths: {        jquery: '../plugins/jquery-1.8.3.min',        free: '../plugins/free/js/free',        common: 'common/common'    },    shim: {        free: {            deps: ['jquery'],            exports: 'free'        },          }    //加上时间戳    // urlArgs: "bust=" + (new Date()).getTime()
3.在你要写的haha.html中引用文件时,data-main中为该页面对应的js文件,不需要加.js

 <script type="text/javascript" src="/public/js/plugins/require.js"      data-main="/public/js/apps/haha"></script>
4.haha.js最上边加上下面这段话
require.config(requireConfig);require(['jquery',           'fly',           'common'], function ($, fly) {    //这部分为你需要编写的功能});
5.附加:为什么要加shim(为了引用第三方模块---未使用define来申明模块

通过require加载的模块一般都需要符合AMD规范即使用define来申明模块,但是部分时候需要加载非AMD规范的js,这时候就需要用到另一个功能:shim,shim解释起来也比较难理解,shim直接翻译为"垫",其实也是有这层意思的,目前我主要用在两个地方
1. 非AMD模块输出,将非标准的AMD模块"垫"成可用的模块,例如:在老版本的jquery中,是没有继承AMD规范的,所以不能直接require["jquery"],这时候就需要shim,比如我要是用underscore类库,但是他并没有实现AMD规范,那我们可以这样配置

require.config({    shim: {        "underscore" : {            exports : "_";        }    }})
这样配置后,我们就可以在其他模块中引用underscore模块:
require(["underscore"], function(_){    _.each([1,2,3], alert);})
6.插件形式的非AMD模块,我们经常会用到jquery插件,而且这些插件基本都不符合AMD规范,比如jquery.form插件,这时候就需要将form插件"垫"到jquery中:
require.config({    shim: {        "underscore" : {            exports : "_";        },        "jquery.form" : {            deps : ["jquery"]        }    }})
也可以简写为:
require.config({    shim: {        "underscore" : {            exports : "_";        },        "jquery.form" : ["jquery"]    }})

这样配置之后我们就可以使用加载插件后的jquery了

require.config(["jquery", "jquery.form"], function($){    $(function(){        $("#form").ajaxSubmit({...});    })})











原创粉丝点击