删除对backbone.router和视图的jquery / zepto依赖性
是否存在分支/维护的主干版本,完全不需要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.prototype.make = function() {}
。 或者只是不要使用Backbone.View
– 除了$.ajax()
不需要其他东西(除非你使用pushState
,在这种情况下你也需要事件绑定)。
是的,这是一个: https : //github.com/inkling/backbone.native 。 它是一个小型适配器,允许Backbone工作,同时仅依赖本机DOM API。
您可以尝试使用jBone ,这是用于现代浏览器中DOM操作的库,jBone专为Backbone开发,只有2kb gzip和jQuery就像API。