Backbone 1.1.0 发布,部分内容与版本 1.0 不兼容

  • Brian Rinaldi
  • 孙镜涛

2013 年 10 月 23 日

话题:JavaScript语言 & 开发

在 JavaScript 社区中Backbone.js 是使用最广泛的前端构建框架之一,该框架最近发布了一个新的更新。尽管这并不是一个非常重要的版本号更新,但是来自于一些用户的报告表明其中的一些变化可能与为了使用版本 1.0 而设计的应用程序不兼容。

版本 1.1.0 中的新内容

最近的更新发布于 10 月 10 号,该版本并没有包含任何新特性。新版本所关注的内容被 Backbone.js 的创建者 Jeremy Ashkenas描述为“6 个月内部精简的价值”。除了基本的代码提升之外,Backbone.js 1.1.0 还包含一些 API 变化,详细信息在更新日志中有说明,例如:

  • Backbone 集合的 set、add、remove 和 reset 方法的返回值现在将返回改变的模型或者模型的列表。
  • Backbone 视图将不再自动地附加选项传递到构造器中作为 this.options。
  • 所有“无效的”事件现在会传递一致的参数,它们是:发生问题的模型、错误对象和选项。
  • 在解析期间模型的 id 将不再会改变,但是应该使用 id 属性代替。

变化的剩余部分被描述为“对 Backbone 1.0 特性的微调、优化和 bug 修复,包括 URL 重写、选项的变化、批量排序、结尾斜线、边界情况的监听器泄漏和嵌套的模型解析”等内容。

不兼容报告

虽然到目前为止对该版本的响应大部分是正面的,但是依然有一些负面评价。Twitter 上的反应显示一些用户似乎有点措手不及,而产生这种情况的原因正是由于小版本中的一些 API 变化和 1.0 主版本存在一些不兼容的地方。正如ChrisWren 的问题

“那么 Backbone 并没有遵循语义版本控制?我以为打破变化意味着 2.0 版本呢。”

其他的评论集中于相似的批评。对核心不兼容的抱怨好像围绕在 Backbone 视图的变化周围,正如Christian Hammond tweet中阐述的:

“对选项解析的视图结构做了一些非常核心的改变。大量的改变不兼容。不清楚为什么要这么做。”

很显然,新版本假定主要的用户在升级到 1.1.0 之前会执行测试,但是记住这些改变的本质是非常重要的,这样你才能意识到潜在的不兼容性。

查看英文原文Backbone 1.1.0 Released, Includes Potential Incompatibility with 1.0

JavaScript语言 & 开发