【问题标题】:what is the basic purpose and benefits of backbone.js? [closed]Backbone.js 的基本目的和好处是什么? [关闭]
【发布时间】:2012-06-28 11:57:28
【问题描述】:

我听说了很多消息,backbone.js 在与html5node.js 一起工作时会非常有用。我已经阅读了文档,但我仍然无法理解backbone.js 的基本用途。

谁能简单地向我解释一下。另外,如果你能指导我学习好的教程。

谢谢

编辑:看到这个问题What is the purpose of backbone.js?

【问题讨论】:

  • 只是想说骨干并不真正关心后端,您可以将骨干与任何使用 REST 的东西一起使用,尽管 expressjs + nodejs + 骨干是一种乐趣

标签: javascript html node.js backbone.js


【解决方案1】:

几乎每个富客户端 Web 应用程序都有一个或多个对象列表,当您执行某项操作时,其中一个对象需要更改其显示方式。想想一个 TODO 列表,它是 Backbone.js 的典型示例。以下是一些你可以做到的方法:

  • 当您进行更改时,使用 jQuery 或类似的东西来更改 HTML div 本身的文本。但是当你想把它保存到服务器时呢?您是否阅读了所有 HTML div 的文本,使其成为数据的权威位置?只是感觉很笨拙!如果您有其他不想显示给用户的状态怎么办?或者,如果您想在两个不同的地方显示同一个对象?

  • 当您进行更改时,请在某处更新一个普通的旧 Javascript 对象,例如 window.todos = [{id:1, foo:'bar'},...]。但是当您更改它时,您必须重新渲染使用该对象的所有内容,并告知服务器有关更改。如果您有两种或多种不同的方式来更改状态,例如我们的 TODOs 应用程序的“标记所有已完成”功能,那么您最终会重复很多次!

Backbone.js 通过为每个持有权威版本数据的 TODO 对象创建一个 Backbone.Model 来解决这个问题。每当您更改模型上的属性时,无论您从何处更改它,它都会通知该对象的所有视图重新渲染。您可以通过单个函数调用将整个模型集合同步到 RESTful 服务器。您的应用将更易于维护,并且您将能够更轻松地添加任意功能。

【讨论】:

  • 两年后添加到我的答案......在我上面提到的“重新渲染”中,Backbone.View 从字面上抛出了任何正在监听模型变化的组件的 DOM刚刚更改,并从模板重建它。如果这对任何阅读本文的人来说似乎效率低下,我鼓励你研究一下 React,它通过添加一个额外的差异层来解决这个问题,它只告诉浏览器对 UI 进行必要的最小更改。与 Backbone.Model 结合使用时效果非常好!
【解决方案2】:

backbone.js 是一个 MVC 框架,它可以帮助您正确地组织代码,并且在您重用它时非常有用且容易。

重量轻。

您可以在以下位置找到一些很好的教程 http://thomasdavis.github.com/2011/02/01/backbone-introduction.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2010-09-15
    • 2015-12-15
    • 2011-01-03
    • 2023-03-04
    • 2019-06-17
    相关资源
    最近更新 更多