2012-07-13 97 views
1

模块加载程序的用途是什么?它如何在JQuery中使用? 如何使用require.js作为模块加载器。 请分享示例应用程序。如果你有!!Jquery,require.js,backbone.js。示例应用程序

+0

http:// backbonetutorials。com/organizational-backbone-using-modules /检查本教程,这有点旧,但仍然是一个好的入门书。然后看看这个https://github.com/jcreamer898/RequireJS-Backbone-Starter/它包含了第一个教程不包括的require.js的一些新特性(主要是垫片)。 – jakee 2012-07-13 07:27:19

回答

9

好吧,我在部分

什么是模块加载器去?

OK在Js中,你不能使用导入指令(很好,在节点中你可以)。所以很多人都将他们的代码粘在一起(即使他们使用的库),所以他们不需要加载任何东西,但是这可能会带来大量的js文件并为您的应用程序添加加载时间,其他人认为它们将代码分开并使用标记加载,但由于您必须在html页面中维护所有定义,因此这是不实用的,所以这里是是require.js来帮助你decopule您的代码通过创建模块并按需加载。这使得您的代码很容易分离,并且可以更轻松地修复,维护或添加功能。

从require.js文档

“当项目达到一定规模,管理脚本模块项目开始变得非常棘手。你需要确保以正确的顺序进行排序脚本,和你需要认真思考如何将脚本合并为一个部署包,以便只有一个或很少的请求被加载脚本。“

它如何在JQuery中使用?

我会将问题更改为如何使用JQuery

您将加载的Jquery作为依赖时,需要你有一个基本的例子here

如何使用require.js作为模块加载器?

这里的一小段代码

的HTML需要

<!DOCTYPE html> 
    <html> 
    <head> 
      <title>jQuery+RequireJS Sample Page</title> 
     <script data-main="scripts/main" src="scripts/require-jquery.js"></script> 
     </head> 
     <body> 
      <h1>jQuery+RequireJS Sample Page</h1> 
    </body> 
    </html> 

我们main.js的配置

paths: { 
     "jquery": "require-jquery" 
    }, 

    modules: [ 
     { 
      name: "main", 
      exclude: ["jquery"] 
     } 

希望的

require(["jquery", "jquery.alpha", "jquery.beta"], function($) { 
    //the jquery.alpha.js and jquery.beta.js plugins have been loaded. 
    $(function() { 
     $('body').alpha().beta(); 
    }); 
}); 

部分这个 可以帮你。你可以下载一个示例项目here

我将添加我的应用程序的一个例子,所以你可以看到如何使用骨干,并要求

的配置

require.config({ 
    shim: { 
     'underscore': { 
     deps: ['jquery'], //dependencies 
     exports: '_' //the exported symbol 
     }, 
     backbone: { 
     deps: ['underscore', 'jquery'], 
     exports: 'Backbone' 
     } 
    } 

    paths: { 
     jquery: 'libs/jquery/jquery-1.7.1.min', 
     underscore: 'libs/underscore/underscore-min', 
     backbone: 'libs/backbone/backbone-min', 

    } 

    }); 

一个例子模块

define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) { 
    //Your code Here 
    }); 

玩得开心需要:-)