`
zhouyrt
  • 浏览: 1173729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RequireJS和Backbone的集成

 
阅读更多

有朋友留言RequireJS如何与Backbone集合使用。

 

这两个轻量级的库合起来使用确实能够方便的构建大型应用程序。RequireJS填补了前端模块化开发的空缺,Backbone采用MVC的分层结构很好的将程序各个部分解耦。

Backbone目前不支持AMD(曾经支持过),那么它只能作为普通的JS文件使用。它全局的标示符是Backbone,它还依赖于underscore,underscore的全局标示是下划线(_)。

 

因此,当我们使用AMD方式写的模块中使用Backbone时,得确保underscore和Backbone已经载入了。


RequireJS 2.0后提供了一个shim参数很好的解决了该问题。

 

示例目录

js目录中有underscore.js,backbone.js。其中cache.js不依赖于Backbone,BaseRouter.js依赖。

 

 

index.html如下

<!doctype html>
<html>
    <head>
        <title>RequireJS和Backbone集成</title>
        <meta charset="utf-8"/>
        <script src="require.js"></script>
        <script>
            require.config({
                baseUrl: 'js',
                shim: {
                    'backbone': {
                        deps: ['underscore'],
                        exports: 'Backbone'
                    }
                }
            });
            require(['BaseRouter'], function(baseRouter) {
            });
        </script>
    </head>
    <body>
    </body>
</html>

 

 

注意,require.config配置了shim参数,shim参数这里有介绍

这样配置后,当其它模块依赖于Backbone(如BaseRouter),它会顺序下载underscore.js和backbone.js。

BaseRouter内就可以把backbone当成AMD模块来使用了。

define(['backbone', 'cache'], function(Backbone, cache){
    // todo with Backbone and other module 
    console.log(Backbone);
    console.log(cache);
    return {};
})

 

 

把目录rb放到apache或其它web服务器上,访问index.html。

 

 

可以看到所有依赖的文件都依次下载了。在BaseRouter内部就可以使用Backbone了。

 

 

 

相关:

http://stackoverflow.com/questions/10933541/how-to-nested-use-require-js-with-backbone-js

rb-2012-6-8.zip

 

  • 大小: 4.3 KB
  • 大小: 20.9 KB
分享到:
评论

相关推荐

    amd-boilerplate:使用 RequireJS、Backbone 和 Handlebars 的 AMD 样板

    因此,总依赖项权重为 ~75kb 而不是 ~180kb,删除了完整的 jQuery 和 Underscore Backbone 的通常依赖项。 完整的应用程序内容列表 该应用程序使用以下依赖项: (无依赖骨干) (模板引擎) (Handlebars easy ...

    backbone-skeleton:Backbone 全新开始,包括 requirejs 、下划线和 jquery

    本文将深入探讨`backbone-skeleton`项目,它是基于Backbone.js构建的一个基本模板,旨在为开发者提供一个良好的起点,包括对RequireJS、下划线库(Underscore.js)和jQuery的集成。 首先,我们来看标题"backbone-...

    自定义的一个前端结构

    开发者可以通过Jasmine验证各个模块的功能,保证代码质量,实现持续集成和测试驱动开发。 在这个自定义结构中,每个部分都有其特定的角色。RequireJS 作为基础,负责模块管理和加载;Backbone.js 提供了 MVC 架构,...

    RequireJS入门(三)

    RequireJS 是一个 JavaScript 的模块化加载库,它使得在浏览器端组织和管理代码变得更加有序,尤其是在大型项目中,能够有效地解决脚本之间的依赖关系。在本篇“RequireJS 入门(三)”中,我们将深入探讨 RequireJS...

    backbone_marionette_require

    总的来说,“backbone_marionette_require”项目展示了如何通过集成Backbone.js、Marionette.js和RequireJS,利用它们的优势来构建高效、可维护的前端应用。这个项目的实践将涵盖模块化设计、组件化开发、数据管理...

    Backbone fundamentals

    Thorax是另一个基于Backbone.js的框架,它利用了RequireJS和AMD(异步模块定义)来组织模块,旨在解决多脚本文件带来的维护性问题。 在Backbone.js的学习过程中,开发者可能会遇到一些常见的问题。比如,如何正确...

    realty-ui:带有RequireJS和控制器的主干-测试

    项目描述中提到这是个测试项目,意味着可能包含了单元测试、集成测试或端到端测试,使用了一些测试框架,如Jasmine或Mocha,来验证Backbone和控制器的逻辑是否按预期工作。 5. **项目结构**:由于压缩包名为"realty...

    backbone_require:BackboneJS + 解析 + RequireJS

    7. **实际项目中的应用**:在"backbone_require-master"这个压缩包中,可能包含了示例代码或者一个完整的项目结构,展示如何在实际开发中集成Backbone.js和RequireJS。通过学习和分析这些代码,你可以更好地理解这两...

    Laravel开发-backbone-module-command

    Backbone.js,作为一个轻量级的MVC框架,与AMD配合良好,因为它依赖于RequireJS或类似的模块加载器来管理和组织其组件。 在“Laravel开发-backbone-module-command”项目中,我们可能会找到一个自定义的Artisan命令...

    hkjc:backbone&requirejs示例工程

    这是一个基于YEOMAN搭建的系统,集成了grunt-proxy、requirejs及rev等打包特性。 通过下面简单的几步你就可以搭建起整个前端开发系统。 ##1. 下载项目 选择1个本地文件夹,在此路径下打开命令行 git init git clone ...

    singool:基于Backbone.js的框架,用于开发单页Web应用程序

    Backbone.js是一个JavaScript库,它提供了模型-视图-控制器(MVC)架构模式,帮助开发者组织代码,使得前端开发更加有序和高效。它强调数据模型和视图的绑定,以及事件驱动的编程方式。 Singool.js框架在其基础上...

    require-backbone-bootstrap-demo

    【标题】"require-backbone-bootstrap-demo" 是一个基于JavaScript的项目示例,它结合了RequireJS、Backbone.js和Bootstrap框架,旨在展示如何在Web应用中有效地组织和管理代码。这个项目经过Firefox和Google Chrome...

    jfinalpluginsdreampie-jfinal.zip

    新增前端:requireJs+backbone+coffeescript+lesscss集成,自动编译coffeescript和lesscss并监听文件改动,因为时间原因主要以实现功能为主,欢迎大家指正和优化 框架地址:...

    backbone-flickr:使用 Backbonejs 集成 Flickr API

    Backbone 支持 CommonJS 和 AMD 规范,可以使用 RequireJS 或 Browserify 管理依赖,实现模块化开发。 10. **响应式设计**:考虑到应用可能在不同设备和屏幕尺寸上运行,应用可能需要采用响应式设计,确保在手机、...

    backbone-example:一个带有 require js 的示例骨干项目

    Backbone.js 提供了一种结构化的方式来组织和管理 JavaScript 应用,而 RequireJS 则是用于模块化和异步加载 JavaScript 文件的工具。在本文中,我们将深入探讨如何将这两个强大的工具结合使用,创建一个高效的前端...

    shouhou:由 requireJs 构建的个人博客

    5. **利于测试**:模块化的代码便于单元测试和集成测试。 总的来说,使用requireJS构建个人博客不仅可以提升开发效率,还能带来更好的性能和可扩展性。在实际项目中,我们还可以结合其他技术,如jQuery、Backbone....

    Backbone-Modules:具有Backbone的浏览器独立模块

    Backbone-Modules通常与模块加载器如RequireJS或SystemJS配合使用,以实现异步加载和模块化。在构建过程中,可以使用工具如Webpack或Browserify来打包和优化模块,以便在生产环境中部署。 **5. 总结** Backbone-...

Global site tag (gtag.js) - Google Analytics