有朋友留言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
相关推荐
因此,总依赖项权重为 ~75kb 而不是 ~180kb,删除了完整的 jQuery 和 Underscore Backbone 的通常依赖项。 完整的应用程序内容列表 该应用程序使用以下依赖项: (无依赖骨干) (模板引擎) (Handlebars easy ...
本文将深入探讨`backbone-skeleton`项目,它是基于Backbone.js构建的一个基本模板,旨在为开发者提供一个良好的起点,包括对RequireJS、下划线库(Underscore.js)和jQuery的集成。 首先,我们来看标题"backbone-...
开发者可以通过Jasmine验证各个模块的功能,保证代码质量,实现持续集成和测试驱动开发。 在这个自定义结构中,每个部分都有其特定的角色。RequireJS 作为基础,负责模块管理和加载;Backbone.js 提供了 MVC 架构,...
RequireJS 是一个 JavaScript 的模块化加载库,它使得在浏览器端组织和管理代码变得更加有序,尤其是在大型项目中,能够有效地解决脚本之间的依赖关系。在本篇“RequireJS 入门(三)”中,我们将深入探讨 RequireJS...
总的来说,“backbone_marionette_require”项目展示了如何通过集成Backbone.js、Marionette.js和RequireJS,利用它们的优势来构建高效、可维护的前端应用。这个项目的实践将涵盖模块化设计、组件化开发、数据管理...
Thorax是另一个基于Backbone.js的框架,它利用了RequireJS和AMD(异步模块定义)来组织模块,旨在解决多脚本文件带来的维护性问题。 在Backbone.js的学习过程中,开发者可能会遇到一些常见的问题。比如,如何正确...
项目描述中提到这是个测试项目,意味着可能包含了单元测试、集成测试或端到端测试,使用了一些测试框架,如Jasmine或Mocha,来验证Backbone和控制器的逻辑是否按预期工作。 5. **项目结构**:由于压缩包名为"realty...
7. **实际项目中的应用**:在"backbone_require-master"这个压缩包中,可能包含了示例代码或者一个完整的项目结构,展示如何在实际开发中集成Backbone.js和RequireJS。通过学习和分析这些代码,你可以更好地理解这两...
Backbone.js,作为一个轻量级的MVC框架,与AMD配合良好,因为它依赖于RequireJS或类似的模块加载器来管理和组织其组件。 在“Laravel开发-backbone-module-command”项目中,我们可能会找到一个自定义的Artisan命令...
这是一个基于YEOMAN搭建的系统,集成了grunt-proxy、requirejs及rev等打包特性。 通过下面简单的几步你就可以搭建起整个前端开发系统。 ##1. 下载项目 选择1个本地文件夹,在此路径下打开命令行 git init git clone ...
Backbone.js是一个JavaScript库,它提供了模型-视图-控制器(MVC)架构模式,帮助开发者组织代码,使得前端开发更加有序和高效。它强调数据模型和视图的绑定,以及事件驱动的编程方式。 Singool.js框架在其基础上...
【标题】"require-backbone-bootstrap-demo" 是一个基于JavaScript的项目示例,它结合了RequireJS、Backbone.js和Bootstrap框架,旨在展示如何在Web应用中有效地组织和管理代码。这个项目经过Firefox和Google Chrome...
新增前端:requireJs+backbone+coffeescript+lesscss集成,自动编译coffeescript和lesscss并监听文件改动,因为时间原因主要以实现功能为主,欢迎大家指正和优化 框架地址:...
Backbone 支持 CommonJS 和 AMD 规范,可以使用 RequireJS 或 Browserify 管理依赖,实现模块化开发。 10. **响应式设计**:考虑到应用可能在不同设备和屏幕尺寸上运行,应用可能需要采用响应式设计,确保在手机、...
Backbone.js 提供了一种结构化的方式来组织和管理 JavaScript 应用,而 RequireJS 则是用于模块化和异步加载 JavaScript 文件的工具。在本文中,我们将深入探讨如何将这两个强大的工具结合使用,创建一个高效的前端...
5. **利于测试**:模块化的代码便于单元测试和集成测试。 总的来说,使用requireJS构建个人博客不仅可以提升开发效率,还能带来更好的性能和可扩展性。在实际项目中,我们还可以结合其他技术,如jQuery、Backbone....
Backbone-Modules通常与模块加载器如RequireJS或SystemJS配合使用,以实现异步加载和模块化。在构建过程中,可以使用工具如Webpack或Browserify来打包和优化模块,以便在生产环境中部署。 **5. 总结** Backbone-...