博主信息
博文 143
粉丝 1
评论 0
访问量 425452
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
require.js模块化编程
弘德誉曦的博客
原创
1193人浏览过

require.js的使用提要


require.js的特点:

① 防止js加载阻塞页面渲染

② 使用程序调用的方式加载js,实现模块化编程

1、加载require.js

<script type="text/javascript" src="require.js"></script>

 或异步加载

<script type="text/javascript" defer async="true"  src="require.js"></script>

或指定网页程序的主模块

<script type="text/javascript" src="require.js" data-main="main"></script>

2、通过deifine()函数定义一个AMD模块

require.js默认加载AMD规范的模块。模块定义形式如下:

定义一个独立性模块:

define(function(){
    var add = function(x,y){
        return x+y;
    };
    return {
        add : add
    };
})

定义一个依赖于myLib.js的模块(被依赖的模块将会在该模块加载前加载):

define(['myLib'],function(){
    function foo(){
        //myLib.doSomething();
    }
    return {
        foo:foo        //定义模块输出
    };
});

3、用require([])来加载定义了的模块

require(['jquery','underscore','backbone'],callbackFunction);

4、然后在页面中使用。

//$, _, Backbone分别对应'jquery','underscore','backbone'的输出
function callbackFunction($, _, Backbone){
    //do something....
}

5、配置需要加载AMD规范的模块(配置写在main.js中)

场景一(相对于main文件所在的路径):

require.config({
    paths:{
        "jquery" : "lib/jquery.min",
        "underscore" : "lib/underscore.min",
        "backbone" : "lib/backbone"
    }
});

场景二(用baseUrl属性指定基目录):

require.config({
    baseUrl : "js/lib",
    paths:{
        "jquery" : "lib/jquery.min",
        "underscore" : "lib/underscore.min",
        "backbone" : "lib/backbone"
    }
});

场景三(全路径加载远程模块)

require.config({
    paths : {
        "jquery" : "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min"
    }
});

6、配置需要加载的第三方模块(配置写在require.config参数对象中)

shim : {
    "jquery.scroll" : {
        deps : ["jquery"],                    //deps数组,表明该模块的依赖性
        exports : "jQuery.fn.scroll"     //exports值(输出的变量名),表明这个模块外部调用时的名称
    }
}

注:① main.js中的配置具有全局性,称为require.js 中的 “主数据"

       ② 加载main.js : <script data-main="js/main" src="js/require.js"></script>

       ③ 更多参见:http://www.jb51.net/article/78661.htm

       ④ 更多参见:入门篇一 (http://www.cnblogs.com/snandy/archive/2012/05/22/2513652.html)

                             入门篇二 (http://www.cnblogs.com/snandy/archive/2012/05/23/2513712.html)

                             入门篇三 (http://www.cnblogs.com/snandy/archive/2012/05/24/2514700.html)

                             进阶篇一 (http://www.cnblogs.com/snandy/archive/2012/06/06/2536969.html)

                             进阶篇二 (http://www.cnblogs.com/snandy/archive/2012/06/07/2537477.html)

                             进阶篇三 (http://www.cnblogs.com/snandy/archive/2012/06/08/2538001.html)

                             requirejs2.0新特性:http://www.cnblogs.com/snandy/archive/2012/06/04/2532997.html

       ⑤ reqiurejs下载:http://requirejs.org/docs/download.html

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学