javascript - backbone.js 的基本目的和好处是什么?

标签 javascript html node.js backbone.js

<分区>

我听说过很多消息说 backbone.js 在使用 html5node.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/

相关文章:

javascript - 抛出错误 RangeError : Invalid time value while setting custom date to DatePicker of react-datepicker

javascript - MouseEvent 的哪个方面或其他什么会触发视觉突出显示?

jquery - 如何在 yii 中显示图像而不是文件字段

html - 全屏背景 + 中间有 5 个横幅

javascript - 如何在 Node js 中解码 base64 编码的 json 对象字符串

javascript - 从对象、对象、对象项获取值

javascript - 在 Laravel 5.1 Controller 中的 Create 方法上从多个输入值编码和传递 JSON 对象

html - 如何在步骤结束时停止步进线延伸

javascript - Node.js |如何通过串口向设备发送和接收一个字节?

node.js - 显示自上次 pull 以来的提交列表