According to backbone js website:
Backbone\'s only hard dependency is Underscore.js ( > 1.3.1). For RESTful persistence, history support via Backbone.Rout
While Backbone.View does depend on a DOM manipulation library, ie you can't use vanilla javascript that is not organized in to a library of some sort, you can configure Backbone to use whatever library you'd like.
See the following from the Backbone source:
// 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;
};
Calling this method will allow you to use whatever library you want.
For example:
Backbone.setDomLibrary(myCustomLibrary);