Repaso conceptual a lo que son los eventos y las posibilidades que nos ofrecen en BackboneJS.
En este segundo artículo para hablaros del framework Javascript BackboneJS, vamos a introducir un concepto fundamental para entenderlo, los eventos. De momento nos centraremos más bien en la parte más teórica, aclarando conceptos y explorando las posibilidades que nos abre Backbone para los desarrolladores.
Recuerda que puedes ver la primera entrega de este artículo en Qué es BackboneJS y también que estos textos los estamos extractando de los hangouts que se emitieron en DesarrolloWeb.com sobre Backbone.JS.
Eventos en general
Con toda certeza debes tener una idea de lo que es un evento en Javascript, así que a partir de ahí, veamos cómo son las mejoras en el sistema de eventos que podemos implementar ayudados de BackboneJS.¿Qué es un evento? Es un acontecimiento que ocurre durante la ejecución de un programa. Cuando "pasa algo". Por decirlo de otra manera, es un "mensaje". El evento es el puro mensaje, con información asociada y relevante al evento, que nos puede dar datos adicionales al contexto donde se ha producido.
Por ejemplo, recibes un email. Ese es el evento, que tiene información relevante, como el objeto que lo ha producido (remitente del mensaje), a dónde se ha enviado, la hora etc. Toda es información nos viene con el evento (recuerda entender al evento como un "mensaje"), para entender su contexto. Lo que ocurra después de recibir el correo ya no es relativo al evento como tal.
Utilidad de los eventos de BackboneJS
De manera adicional al concepto de evento que ya conocemos y que está implementado en Javascript nativo, la clase Event de BackboneJS nos permite lanzar eventos y escuchar eventos sobre cualquier objeto que queramos. Se puede tener un objeto normal y corriente en Javascript, asociarle la funcionalidad de Event de Backbone y a partir de entonces, en ese objeto vas a poder lanzar eventos, escucharlos, suscribirte a eventos que se produzcan en otros objetos.Aquí es donde se inicia la magia de Backbone, en la capacidad de trabajar con eventos en cualquier lugar. A través de la clase Evento tienes una interfaz de programación que te permite trabajar en cualquier objeto con eventos y sobre todo, la potencia de propagarse automáticamente hacia otros objetos que también puedan estar interesados en esos mensajes.
La clase Event de Backbone es muy importante porque se puede usar en cualquier objeto, por lo que tanto vistas, modelos y cualquier otro objeto tienen esa misma interfaz de "mensajes" para comunicarse entre sí.
Implementar los eventos en BackboneJS
De momento nos vamos a centar en la parte conceptual y vamos a dejar el código para más adelante, donde veremos ejemplos en detalle. Sin embargo, os podemos adelantar que Backbone se apoya de jQuery (recordemos que es una de sus dependencias) y por ello utilizaremos también los métodos on() y off() de jQuery dentro de Backbone.JS.No obstante, existen algunas mejoras interesantes. De momento nos debemos de quedar que podremos "bindear" (asignar) y hacer "trigger" (lanzar) eventos totalmente personalizados. La idea es exactamente la misma que en jQuery, pudiendo con el método on() asignar la función manejadora de eventos que necesitemos.
Además, existe una serie de eventos que vienen "de serie" en Backbone que se lanzan cuando ocurren cosas típicas sobre modelos, colecciones y vistas. Ejemplos de ello serían "add", "remove", "change", "request", "sync", "error" etc. Veremos más adelante todo esto con mayor detalle.
En el siguiente artículo podrás conocer otros de los integrantes de BackboneJS más fundamentales, como son los modelos y las colecciones.
Erick Ruiz de Chavez
Desarrollador web, Geek "de hueso colorado", Marido feliz.