Pregunta sobre backbone.js, javascript, web-applications, client-side, jquery – Eliminación de la dependencia jquery / zepto en backbone.router y vistas

5

¿Existe una versión de la red troncal bifurcada / mantenida que elimine por completo la necesidad de jquery o zepto para usar tanto el enrutador como las vistas?

No me importaría usar backbone, pero no hay manera de forzar una dependencia de jquery en mi página solo para usarla.

Si no existe una solución, ¿puede alguien publicar una idea de qué debe cambiarse exactamente?

Dado que el sistema de gestión de eventos para vistas está basado en$.delegate Y amigos, creo que estás de suerte. mu is too short
En efecto. : / [limitación de caracteres] AntelopeSalad

Tu respuesta

3   la respuesta
0

Puedes intentar usarjBone, esta es una biblioteca para manipulaciones de DOM en navegadores modernos, jBone desarrolló una especial para Backbone, solo 2kb gzipped y jQuery como API.

4

Sí, aquí hay uno:https://github.com/inkling/backbone.native. Es un pequeño adaptador que permite que Backbone funcione mientras confía solo en las API nativas de DOM.

9

los eventos de DOM y las solicitudes de AJAX, necesitará otra biblioteca para hacer esto. No tiene que ser jQuery o Zepto. Backbone también es compatible con Ender, y teóricamente, puede usar cualquier biblioteca que pueda hacer la selección de DOM y admita un subconjunto de métodos de estilo jQuery. Una mirada rápida a través de lacódigo fuente anotado Demuestra que necesitas los siguientes métodos:

$(selector)$.ajax()$(selector).find()$(selector).bind()$(selector).unbind()$(selector).delegate()$(selector).remove()$(selector).attr()$(selector).html()

Si no quieres que Backbone se encargue de esto, puedes eliminar fácilmente los requisitos sobrescribiendo los métodos que los utilizan, por ejemplo. puedes prescindir de.attr() y.html() configurandoBackbone.View.prototype.make = function() {}. O simplemente no usarBackbone.View - Eso elimina la necesidad de todo pero$.ajax() (a menos que estés usandopushState, en cuyo caso también necesita vinculación de eventos).

Bueno, como dije, simplemente no usesBackbone.View. Entonces solo tienes que implementar$.ajax(). Si no está dispuesto a usar una biblioteca DOM, no obtendrá mucho valor deBackbone.View de todas formas. nrabinowitz
Correcto - pero el punto es,Backbone.View es bastante ligero ("más conveniencia que el código", según los documentos), y casi todos losmetodos requiere una biblioteca DOM. El mayor apoyo que ofrece la clase es el manejo de eventos, que es posible volver a implementar, pero es un dolor. Elimine todo eso y se queda con una clase en la que podría escribirse en 10 minutos, además de algunas convenciones de mejores prácticas. nrabinowitz
Ok, gracias, ¿así que básicamente no vale la pena el esfuerzo? Eso parece ser una gran cantidad de anulación de hacer manualmente. - Editar: va a dejar que esto se ejecute durante unas horas más y lo marque como correcto si no se dan soluciones. AntelopeSalad
No estoy de acuerdo con eso. No es una locura pensar en seleccionar un elemento utilizando getElementById () en lugar de usar jquery, o establecer el atributo innerHTML de algo, etc. AntelopeSalad

Preguntas relacionadas