Plugster Logo

Micro framework JavaScript escrito sobre jQuery en el cual la comunicación basada en eventos es una característica clave, así como la capacidad de manipular elementos HTML sin abusar del shortcut $.

Mediante el uso de los conceptos de "vista" y "controlador", tratamos de separar responsabilidades, implementando una fuerte modularidad en el camino, y tratamos de dividir el diseño HTML y JavaScript en archivos separados e independientes. Siempre que necesite codificar un nuevo módulo, deberás escribir un archivo HTML para la vista y un archivo JavaScript para su controlador correspondiente, que de ahora en adelante se conocerá como un Plugster.

Cada Plugster puede incluir "outlets" que actuaran como un enlace entre el controlador y la vista, permitiéndonos acceder a los elementos del DOM de una manera más elegante y clara que usar sentencias selectoras directas de jQuery.

Razones importantes para utilizar Plugster

Cuando decidimos desarrollar la librería, buscábamos:
  • Una librearía de cliente web para usar directamente desde el navegador
  • Una forma de seguir utilizando los plugins de jQuery que ya existen para crear nuestras aplicaciones web
  • Una forma de evitar el ruido que provoca el uso indiscriminado de sentencias selectoras utilizando el shortcut "$" de jQuery
  • Un mecanismo simple para vincular elementos DOM con controladores escritos en JavaScript
  • Una forma simple y clara de mantener las vistas HTML y los controladores de JavaScript en archivos separados
  • Una forma efectiva de desarrollar módulos o widgets UI independientes que se comunican a través de un mecanismo Pub/Sub basado en escuchas y disparadores de eventos de jQuery
  • Un lenguaje HTML declarativo para suscribirse a eventos de otros Plugsters

Un pequeño demo

La siguiente sección es una pequeña demostración de lo que se puede hacer usando la librería. Muestra cómo establecemos escuchas de eventos directamente en la vista HTML a través del atributo "data-on-", y también muestra con qué facilidad podemos declarar poutlets para evitar utilizar el shortcut $ de jQuery en el controlador.

Timer Control Center
                                    
                                        <div class="has-text-centered"
                                             data-controller-name="ControlCenterPlugster"
                                             data-on-timerplugster-timerpaused="handlePauseCommand"
                                             data-on-timerplugster-timerresumed="handleResumeCommand">
                                            <div class="subtitle">Timer Control Center</div>
                                            <div data-outlet-id="buttonsList" class="buttons is-centered">
                                                <button data-outlet-id="playButton" class="button is-success">Start</button>
                                                <button data-outlet-id="restartButton" class="button is-danger is-hidden">Stop</button>
                                            </div>
                                        </div>
                                    
                                

"Widget "Centro de control" (Plugster) para iniciar y pausar el timer que se encuentra justo debajo de esta sección.

0s
                                    
                                        <div class="has-text-centered"
                                             data-controller-name="TimerPlugster"
                                             data-on-controlcenterplugster-timerstarted="handleStartCommand"
                                             data-on-controlcenterplugster-timerpaused="handlePauseCommand"
                                             data-on-controlcenterplugster-timerresumed="handleResumeCommand"
                                             data-on-controlcenterplugster-timerrestarted="handleRestartCommand">
                                            <div data-outlet-id="timerLabel" class="subtitle is-clickable">0s</div>
                                        </div>
                                    
                                

Timer controlado por el centro de control que se muestra arriba, y también por sí mismo.

Resources