Backbone.js est un framework JavaScript sous licence MIT que Jeremy Ashkenas a écrit dans le cadre de son travail chez DocumentCloud. Il permet d’apporter de la structure à des applications JavaScript grâce à une bibliothèque qui ne fait pourtant qu’un millier de lignes de code en tout.
Pour cela, il apporte la séparation du code en classes :
- les modèles et collections sont responsables de la logique métier et peuvent également servir pour la persistance, aussi bien locale avec localStorage que distante via des API RESTful en JSON. Les modèles proposent des enregistrements clé‐valeur et des événements associés. Les collections offrent un catalogue bien pratique de méthodes d’énumération : ce sont les méthodes
map
,reduce
,filter
importées depuisunderscore.js
, une des rares dépendances de Backbone.js ; - les vues font la liaison entre les modèles et le DOM. Elles mettent à jour le code HTML en fonction des modifications des modèles et, dans l’autre sens, peuvent gérer les événements du DOM ;
- le routeur permet de modifier l’URL de la page (le
#fragment
ou, depuis la version 0.5.0, le chemin complet grâce àpushState
) et de retourner à l’état associé quand la page est rechargée. Cela permet d’avoir des URL qui peuvent être mises en favoris ou partagées.
Backbone.js a atteint la version 0.5.0 il y a quelques jours et est déjà utilisé sur des projets notables comme Basecamp Mobile.