21

バックボーンjsのWebサイトによると:

バックボーンの唯一のハード依存関係はUnderscore.js(> 1.3.1)です。RESTfulな永続性のために、Backbone.Routerによる履歴サポートとBackbone.ViewによるDOM操作には、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なしでどのように機能しますか?

4

4 に答える 4

25

Backbone.ViewはDOM操作ライブラリに依存します。つまり、ある種のライブラリに編成されていないバニラJavaScriptを使用することはできませんが、任意のライブラリを使用するように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);
于 2012-04-20T13:22:38.180 に答える
7

Backbone.ModeljQuery なしで使用できますがBackbone.View、ドキュメントの状態と同様に、jQuery または Zepto が必要になります。

于 2012-04-20T07:26:31.473 に答える
7

jBoneを使用してみてください。これは最新のブラウザーでの DOM 操作用のライブラリです。jBone は Backbone 用に特別に開発されたもので、わずか 2kb の gzip 形式で、jQuery のような API です。

于 2013-11-13T10:21:25.327 に答える
3

Backbone は、jQuery からさらに簡単に分離できるようになりました。
これをチェックしてください:

jQuery なしでバックボーンを使用する

于 2014-06-12T22:27:07.460 に答える