与 Backbone 结合使用的常见模块化脚本加载框架是 require.js。这可能是您正在寻找的东西。Require.js 都是关于 AMD 模块、异步模块的。通常每个模型、集合、视图都是它自己的模块,它定义了特定模块所需的依赖关系,然后根据需要加载这些模块。它特别适合大型项目,在这些项目中,您需要在应用程序的不同点将许多单独的部分混合在一起。
您当然可以在单个模块中组合多个主干元素(通常我将其保留给仅与父视图一起使用的视图和特定子视图),但这完全取决于您。
使用 Backbone,通常的目的是创建单页应用程序 - 这意味着所有页面脚手架通常被包装为单个文件并在开始时完全加载到客户端。然后通过 ajax 调用每个页面的数据,并在用户导航和加载应用程序的不同方面时填充数据。这是您在描述中的意图吗?
如果您要加载从服务器单独抓取的不同页面,那么我不确定 Backbone 是否是答案。还有其他服务器端 MVC 框架可以帮助实现这一点。
这通常涉及如何将 Backbone 用于此类事情。
至于如何扩展 Backbone 模型等,Backbone 使用 Underscore 作为依赖项,并且 underscore 提供了一个很好的_.extend()
功能,可以轻松地以几乎任何您想要的方式扩展所有对象。覆盖默认功能,加入 mixins,就 Backbone 而言,这一切都非常轻松。作为一个框架,Backbone 在改变、修改和定制每一点和每一个部分时都非常适合。
至于处理用户访问和重新访问页面,Backbone.router
允许您创建不仅指向应用程序中特定“页面”的 URL,而且还可以执行需要执行才能到达那里的任意代码。像登录用户访问“mysite/#account”之类的东西会触发路由器加载某些脚本,这些脚本会显示该特定视图以及可能fetch()
为用户启动和运行该视图所需的数据。
我不确定是否有资源可以为您提供某种基本结构。我所知道的大多数经验都倾向于通过“Todo List”之类的基本教程并从那里开始。我不确定您对 javascript 或一般编程的经验水平如何,但是当我几乎一无所知时,我从 Backbone 和 require 开始。只有对 JSON 是什么的模糊概念和对 HTTP 的低层次理解,例如“它就是获取网页的东西”。也就是说,我认为 Backbone 对我来说很容易上手,它加深了我对整个客户端 RESTful 类型应用程序结构的了解。
“待办事项列表”应用程序有一个非常好的列表,有许多不同的风格,例如 Backbone 和 Knockout 等等。在决定一个框架时,我基本上通过代码比较了所有可用的不同框架并选择了 Backbone,因为它对我来说似乎最有意义。我不后悔。这很有趣,我认为最好的方法是尝试一些演示教程。