根据骨干js网站:
Backbone唯一的硬依赖是Underscore.js(> 1.3.1)。对于RESTful持久性,通过Backbone.Router的历史支持和使用Backbone.View的DOM操作,包括json2.js,以及jQuery(1.4.2)或Zepto。
我使用下面的代码进行了测试,删除了jQuery,Backbone视图引发了错误。
<html>
<head>
<title>asda</title>
<!--<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>-->
<script src="http://documentcloud.github.com/underscore/underscore.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone.js"></script>
<script type="text/javascript" charset="utf-8" async defer>
SearchView = Backbone.View.extend({
initialize: function(){
alert("Alerts suck.");
}
});
// The initialize function is always called when instantiating a Backbone View.
// Consider it the constructor of the class.
var search_view = new SearchView;
</script>
</head>
<body>
</body>
</html>
Backbone.View和Backbone.Router如何在没有jQuery的情况下工作?
答案 0 :(得分:25)
虽然Backbone.View确实依赖于一个 DOM操作库,即你不能使用没有组织到某种库中的vanilla javascript,你可以配置Backbone来使用任何库你想要。
请参阅Backbone来源中的以下内容:
// Set the JavaScript library that will be used for DOM manipulation and
// Ajax calls (a.k.a. the `$` variable). By default Backbone will use: jQuery,
// Zepto, or Ender; but the `setDomLibrary()` method lets you inject an
// alternate JavaScript library (or a mock library for testing your views
// outside of a browser).
Backbone.setDomLibrary = function(lib) {
$ = lib;
};
调用此方法将允许您使用所需的任何库。
例如:
Backbone.setDomLibrary(myCustomLibrary);
答案 1 :(得分:7)
您可以在没有jQuery的情况下使用Backbone.Model
,但Backbone.View
将需要jQuery或Zepto,就像文档状态一样。
答案 2 :(得分:7)
尝试使用jBone,这是现代浏览器中DOM操作的库,jBone专为Backbone开发,只有2kb gzip和jQuery就像API。
答案 3 :(得分:3)
Backbone现在更容易与jQuery分离 看看这个:
https://github.com/jashkenas/backbone/wiki/Using-Backbone-without-jQuery