删除对backline.router和视图的jquery/zepto依赖关系

Removing the jquery/zepto dependency on backbone.router and views

本文关键字:jquery zepto 依赖 关系 视图 backline router 删除      更新时间:2023-09-26

是否有一个分叉/维护的主干版本可以完全消除jquery或zepto同时使用路由器和视图的需要?

我不介意使用主干网,但我不可能为了使用它而在页面上强制使用jquery依赖项

如果不存在解决方案,有人能准确地发布需要更改的要点吗?

如果您希望Backbone处理DOM操作、DOM事件和AJAX请求,那么您需要另一个库来完成这项工作。它不一定是jQuery或Zepto-Backbone也支持Ender,理论上你可以使用任何可以进行DOM选择并支持jQuery风格方法子集的库。快速浏览带注释的源代码可以发现您需要以下方法:

  • $(selector)
  • $.ajax()
  • $(selector).find()
  • $(selector).bind()
  • $(selector).unbind()
  • $(selector).delegate()
  • $(selector).remove()
  • $(selector).attr()
  • $(selector).html()

如果你不想让Backbone处理这些东西,你可以很容易地通过覆盖使用它们的方法来删除需求——例如,你可以通过设置Backbone.View.prototype.make = function() {}来省去.attr().html()。或者不要使用Backbone.View——这消除了除$.ajax()之外的所有内容的需要(除非您使用pushState,在这种情况下您也需要事件绑定)。

是的,这里有一个:https://github.com/inkling/backbone.native.它是一个很小的适配器,允许Backbone在只依赖本机DOMAPI的情况下工作。

您可以尝试使用jBone,这是现代浏览器中用于DOM操作的库,jBone专门为Backbone开发,只有2kb的gzipped和类似jQuery的API。