Backbone.js 模块化设置

标签 backbone.js modularity

我是 Backbone 新手,我在这里寻求一些帮助,以了解我将如何构建我当前的 webapp 项目。我正在为服务器开发一个模块化管理面板。面板的每个“页面”都应该是一个打包的“模块”,包括 Controller 、模型和 View 。

该面板将包含一个初始加载的主布局 View ,以及一个基本导航。当用户单击导航上的链接时,页面会通过 AJAX 加载到布局中。
(如果这听起来很愚蠢/有理由不这样做,请告诉我:))

由于其他人也会开发这些页面,而且它们是模块化的,所以我不知道我将在通过 AJAX 加载的页面中看到哪些模型、 View 和 Controller 。

我将如何最好地使用 Backbone 做到这一点?

我特别想知道如何动态扩展 Backbone 模型等,以及如何管理(例如)用户离开页面和/或稍后重新访问它。

Backbone 是否提供了我可以使用的东西,我是否需要一起破解自己的东西,有没有更好的方法来做我缺少的事情?

最佳答案

你对这些问题的思考听起来很正确。使您的 UI 组件尽可能自包含。观看 10 min video获取有关 UI 组件最佳实践的更多信息。

如果您对 JavaScript 应用程序开发的其他重要问题感兴趣,请查看 BoilerplateJS我发布的引用架构以分享我的经验。它包含与您描述的类似的示例应用程序(带有组件激活的菜单)。

我对您的 UI 组件激活、停用的建议是:

  • 不要删除/创建 DOM 组件。重用隐藏/显示,因为即使从 DOM 中删除,您的元素也会在内存中重新定位
  • 尽量减少在客户端保留“状态”信息。当用户重新访问组件时,使用服务器调用刷新它,然后使其可见(使用服务器作为状态信息的唯一真实性)。

  • 有关更多详细信息,请参阅 BoilerplateJS 示例组件实现。我知道很少有人将它与 BackboneJS 一起使用(目前它与 knockoutJS 一起提供)。我们将在一周后使用 v0.2 中的 BackboneJS 发布它的示例。

    关于Backbone.js 模块化设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447415/

    相关文章:

    r - 使用knitr生成复杂的动态文档

    javascript - 如果页面上显示某些内容然后进入 if 语句?

    python - 如何为需要公共(public)参数和特定参数的实现创建公共(public)接口(interface)函数(在Python中)?

    php - 模块化设计模式

    c++ - 我可以在 C++ 中使用可配置的静态链接吗?

    mysql - 使用 View 作为数据库中模块之间的数据接口(interface)

    node.js - Meteor下划线无法调用未定义的方法 'exports'

    javascript - 如何访问 Collection View (或布局)的 templateHelper 中的特定模型?

    javascript - 在浏览器中使用 Sinon Spies 的 Backbone.js 查看测试

    javascript - Backbone.js 如何跟踪登录用户状态以及有关应用程序结构的一般建议