2013-05-22 8 views
11

Posso capire di aver bisogno di un livello di astrazione per operazioni comuni come il recupero degli elementi DOM, la manipolazione degli attributi, ecc., Ma jQuery è una libreria piuttosto massiccia che sembra un sacco di overkill per Ember.Perché jQuery è una dipendenza Ember.js?

Dopo aver guardato attraverso il codice sorgente, ci sono solo circa 30 usi di jQuery in Ember e sembra che la maggior parte dell'uso di jQuery siano chiamate di selettori semplici, alcuni eventi e alcuni traversamenti DOM.

Ember. $ (RootElement) .off ('. Ember', '**'). RemoveClass ('ember-application'); .

...

elem = questo $(); ..

...

questo $() appendTo (target);

...

Ember $ (window) .on ('hashchange.ember-location -'. + Guid, function() {

ecc

Ce ne sono altri motivi Ember richiede jQuery per ogni applicazione?

potrebbero queste alcuni usi essere incorporati in Ember e jQuery rimossi come una dipendenza?

+2

'Jquery' è in pratica' Javascript' per le persone che non vogliono scrivere 'javascript'. Detto questo, ci sono molte persone che includeranno semplicemente qualcosa per 1 funzione singolare di jQuery invece di scrivere le 5 o 10 linee di codice per farlo in Javascript. Questa è almeno la mia esperienza. –

+1

e non c'è nulla di sbagliato in quello –

+0

@ParijatKalia è uno scherzo? – aaaaaa

risposta

17

Solo il livello di visualizzazione di Ember dipende da jQuery. È stato usato più pesantemente storicamente di quanto lo sia ora. In futuro, potremmo suggerire di inserire le funzionalità in Ember stessa, sebbene non desideriamo mantenere la compatibilità tra browser in Ember di cui jQuery si sta già occupando. Un altro percorso, con jQuery 2.0, sarebbe un modo per creare una build trimmer di jQuery contenente solo le parti utilizzate da Ember.

Se non esistono modi per sostituire le istanze di utilizzo di jQuery nel core di Ember, è necessario proporre le modifiche come problemi su GitHub.

+2

Perché non usare semplicemente Zepto o qualcosa del genere, se jQuery non è caricato? Analogamente a come Angular utilizza un "jQuery minimo". O ancora meglio: assicurati che Ember funzioni con Zepto e jQuery. –

22

La domanda era extremely well explained di Tom Dale (Ember Core Developer).

In sostanza, dice:

Ember.js richiede jQuery per due motivi:

  • Facciamo affidamento su di esso pesantemente nell'integrazione Ember/Manubri per l'inserimento e la modifica di elementi DOM. Personalmente non sono interessato allo nell'affrontare i bug di manipolazione del DOM cross-browser, ma il team jQuery eccelle.
  • Avendo una libreria di manipolazione DOM standard in jQuery, gli sviluppatori possono spostarsi tra diverse app Ember.js e contare sul fatto che hanno una libreria cross-platform testata in battaglia sotto di loro.

Se siete preoccupati per le dimensioni, mi consiglia di studiare la nuova jQuery 2.0, che ha la capacità di fare personalizzato costruisce senza caratteristiche quali l'animazione.

Ha molto senso per me.

Aggiornamento:

Recentemente Erik Bryn (Ember Sviluppatore troppo) ha scritto un interessante comment circa il quadro e parlano del stato dell'arte di utilizzo jQuery in progetti di Ember.

Incollare il commento:

Si tratta di un malinteso comune che Ember.js è monolitica. Posso assicurare che in realtà non è vero. Puoi scegliere le parti di Ember che desideri o di cui hai bisogno (ad esempio, il router è totalmente opzionale). I nostri strumenti di sviluppo supportano anche il prelievo e la scelta dei pacchetti desiderati. Puoi usarlo oggi senza jQuery (avrai bisogno di per shim e avrai una libreria di delega degli eventi, o ancora più facile usare un superleggero custom jQuery build).

Problemi correlati