<分区>
我听说过很多消息说 backbone.js
在使用 html5
和 node.js
时会非常有用。我已经阅读了文档,但仍然无法理解 backbone.js
的基本用途。
有人可以用简单的术语向我解释一下吗?另外,如果你能指导我找到好的教程。
谢谢
编辑:查看此问题 What is the purpose of backbone.js?
<分区>
我听说过很多消息说 backbone.js
在使用 html5
和 node.js
时会非常有用。我已经阅读了文档,但仍然无法理解 backbone.js
的基本用途。
有人可以用简单的术语向我解释一下吗?另外,如果你能指导我找到好的教程。
谢谢
编辑:查看此问题 What is the purpose of backbone.js?
最佳答案
几乎每个富客户端 Web 应用程序都有一个或多个对象列表,当您执行某项操作时,其中一个对象需要更改其显示方式。想一想 TODO 列表,它是 Backbone.js 的典型示例。以下是一些您可以执行此操作的方法:
当您进行更改时,使用 jQuery 或类似的工具来更改 HTML div 本身的文本。但是当你想将它保存到服务器时呢?您是否读取了所有 HTML div 的文本,使其成为数据的权威位置?就是觉得笨重!如果您有其他不想显示给用户的状态怎么办?或者如果你想在两个不同的地方显示同一个对象?
当您进行更改时,在某处更新一个普通的旧 Javascript 对象,例如 window.todos = [{id:1, foo:'bar'},...]
.但是当你更改它时,你必须重新渲染使用该对象的所有内容,并且还要将更改告知服务器。如果您有两种或多种不同的方式来更改状态,例如我们的 TODO 应用的“标记全部完成”功能,那么您最终会重复很多次!
Backbone.js 通过为每个保存数据权威版本的 TODO 对象创建一个 Backbone.Model 来解决这个问题。每当您更改模型上的属性时,无论您从何处更改它,它都会通知该对象的所有 View 重新渲染。您可以通过单个函数调用将整个模型集契约(Contract)步到 RESTful 服务器。您的应用程序将更易于维护,并且您将能够更轻松地添加任意功能。
关于javascript - backbone.js 的基本目的和好处是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219655/