Backbone.js的是否有jQuery的硬依赖?(Does Backbone.js have a

2019-07-29 01:32发布

据骨干JS的网站:

骨干网的唯一困难的依赖是Underscore.js(> 1.3.1)。 对于通过Backbone.Router和DOM操作与Backbone.View RESTful的持久性,历史的支持,包括json2.js,和任一的jQuery(1.4.2)或的Zepto。

我用代码测试下面,除去jQuery和骨干视图引发错误。

<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的?

Answer 1:

虽然Backbone.View不依赖 DOM操作库,即你不能使用未在某种库组织的香草JavaScript,您可以配置骨干用自己喜欢的任意库。

请参阅从骨干源如下:

// 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);


Answer 2:

您可以使用Backbone.Model没有jQuery的,但Backbone.View将要求要么jQuery的或的Zepto,就像文档状态。



Answer 3:

尝试使用jBone ,这是库在现代浏览器的DOM操作,jBone开发的专用骨干,只有2KB gzip压缩和jQuery类似API。



Answer 4:

骨干网现在更容易从jQuery的脱钩。
看一下这个:

https://github.com/jashkenas/backbone/wiki/Using-Backbone-without-jQuery



文章来源: Does Backbone.js have a hard dependency on jQuery?
标签: backbone.js