Dove si inserisce jQuery con framework come JavaScriptMVC, BackboneJS, SproutCore e Knockout?

14

Ho utilizzato felicemente JQuery per gli ultimi 2 anni e sono stato abbastanza efficace creando alcune funzionalità davvero interessanti con esso ... quindi mi sento molto a mio agio. Inoltre, credo che il futuro del Web continuerà sull'attuale percorso lato client.

Tuttavia ...

La prossima sfida sembra venire sotto forma di vari framework di controller: KnockoutJS , BackboneJS , SproutCore , JavaScriptMVC (l'elenco potrebbe continuare).

Additonally, ci sono alcuni ottimi AMD Loader da utilizzare come RequireJS o LabJS ecc. Tuttavia, jQuery ora ha define e then capacità cotte al forno.

Diventa sempre più difficile tenere traccia di tutto ...

E ora, il mio compito sembra essere quello di valutare / decidere-su una direzione strategica per l'utilizzo di qualche forma di un framework MVC o MVVM lato client ... ma ho così tante domande.

  • Dove JQuery fit-in con i vari framework di controller sopra menzionati ?
  • È JQuery usato insieme a ciascuno o alcuni di loro hanno il loro ' JQuery versione -styled "baked-in?
  • Sono strumenti come RequireJS ancora necessari se si implementa uno dei vari controller -framework menzionato sopra?
  • Le funzionalità define e then trasformate in JQuery ora vengono sostituite il caricatore AMD menzionato sopra?
  • Quale sembra più modulare? (vedi note sotto)

Note:
Una cosa che non voglio in nessuna struttura futura è l'esigenza di dover assorbire grandi quantità di funzionalità che non uso. Significando, preferirei usare un quadro che sia veramente modulare. Ad esempio, per utilizzare l'interfaccia utente di jQuery devi prendere in mano molte altre librerie di base che potresti non utilizzare effettivamente.

Sperimenterò con ciascuno di essi, ma alcuni feedback REALI sarebbero grandiosi. Ho visto alcune domande "simili", ma nessuna ha veramente risposto alla suddetta inclinazione.

Grazie in anticipo!

    
posta Prisoner ZERO 30.11.2011 - 13:17
fonte

2 risposte

11

jQuery uno strumento di normalizzazione cross browser. Ti dà il seguente

  • Utilità DOM
  • Sistema eventi
  • Ajax
  • Animazioni
  • Utilità ES5
  • qualche altra cosa

Backbone / knockout / yada / yada sono librerie di tipo MVC che sono lì per aiutarti a strutturare e scrivere applicazioni modulari. Ne hai bisogno solo se vuoi la loro struttura.

RequireJS / yada / yada sono caricatori di moduli. Hai bisogno di una qualche forma di caricatore di moduli se vuoi scrivere un'applicazione modulare.

Where does JQuery fit-in with the various controller-frameworks mentioned above?

Come accennato, jQuery normalizza i browser. i quadri del controllore no. Non hai bisogno di jQuery ma hai bisogno di un modo per normalizzare i browser.

Is JQuery used alongside each or do some of them have their own 'JQuery-styled version' baked-in?

Backbone / knockout / JavaScriptMVC non hanno la normalizzazione del browser attivata, quindi è necessario uno strumento per questo. Non sono sicuro di SproutCore sembra avere molto in là.

Are tools like RequireJS still needed if you implement one of the various controller-frameworks mentioned above?

Sono necessari solo se si scrive per scrivere applicazioni modulari. Quindi, sì, sì.

Ci sono tre versioni di applicazioni modulari

  • async richiede caricatori come requireJS
  • La sincronizzazione
  • richiede caricatori come modul8
  • utilizzando gli spazi dei nomi e includendo solo i file
  • pacchetti come ender

Does the define and then capabilities baked-into JQuery now supercede the AMD Loader mentioned above?

No. la capacità di definire cotta in jQuery consente di utilizzarla con un caricatore AMD senza wrapping di jQuery. Hai ancora bisogno di un caricatore AMD. La "quindi" capacità è solo un po 'di zucchero di jQuery differite.

Which one seems most modular? (see notes below)

Questa è una domanda supponente. La mia opinione personale è che tutti questi framework compresi jQuery sono gonfiati e non modulari.

Vuoi modulare, scrivi la tua libreria, scrivi la tua architettura.

Tuttavia, se vuoi il minore dei mali, sceglierei il backbone perché è semplice e piccolo o colonna vertebrale che è simile

    
risposta data 30.11.2011 - 13:51
fonte
2

Risponderò a JavaScriptMVC perché contribuisco:

Where does JQuery fit-in with the various controller-frameworks mentioned above?

JavaScriptMVC dipende da jQuery e lo usa ampiamente.

Is JQuery used alongside each or do some of them have their own 'JQuery-styled version' baked-in?

JavaScriptMVC non ha funzionalità concorrenti con jQuery. Questo non è vero con Backbone che ha il proprio sistema di eventi. Ma, qualsiasi spina dorsale o spina dorsale aggiungere sono molto minimali.

Are tools like RequireJS still needed if you implement one of the various controller-frameworks mentioned above?

JavaScriptMVC viene fornito con un sistema di gestione delle dipendenze - > rubare. È possibile utilizzare JavaScriptMVC con RequireJS, ma l'appropriazione è in realtà molto più potente e relativa alla dimensione uguale scaricata da un utente.

Which one seems most modular? (see notes below)

Questo non è supponente. JavaScriptMVC è estremamente modulare. Tu usi solo ciò di cui hai bisogno. Rispetto a Backbone o colonna vertebrale, puoi utilizzare le parti M, V o C standalone. Una volta assemblati, è solo 1k più grande di Backbone (quando si usano jQuery e Underscore). Puoi vedere le varie dimensioni dei componenti di base qui: link

Ma JavaScriptMVC è molto più potente (in termini di funzionalità) rispetto a Backbone o Spine. Ad esempio, i gestori di eventi basati su modelli impediscono praticamente tutte le perdite di memoria. Ecco un suggerimento che si nasconde quando si fa clic sulla finestra:

$.Controller('Tooltip',{
  "{window} click" : function(){
    this.element.remove();
  }
})

Questo è assolutamente fondamentale con l'approccio MVC quando i tuoi controlli ascoltano cambiamenti nel modello come:

$.Controller('Todos',{
  "{Todo} created" : function(Todo, ev, createdTodo){

  }
})

Il controllore annullerà automaticamente tutti questi gestori di eventi esterni.

Alcuni altri punti di forza delle sole parti MVC:

  • $. La classe è un sistema di classi molto potente
  • $. Visualizza e $ .Model supporta i differimenti
  • $. Il controller può 'rebindare' i gestori di eventi
  • $. Il modello supporta associazioni, getter / setter, valori predefiniti, convalide

Ora, JavaScriptMVC è molto più delle semplici parti MVC (che fanno parte del sottoprogetto jQueryMX). Ha:

  • jQueryMX - Le funzionalità mancanti di jQuery come eventi speciali, dom helpers, ecc.
  • Ruba - un sistema di gestione delle dipendenze. Ma può fare cose come prendere un'app ajax e renderlo google crawlable.
  • FuncUnit - Un framework di test incredibilmente potente.

Ora, su cosa usare, molto dipende. Molto dipende se stai facendo una "app" o una "pagina". Un'applicazione che richiede test, gestione delle dipendenze, in cui ti preoccupi delle perdite di memoria, guarderei JMVC o SproutCore.

Se stai incollando insieme alcuni widget di base, guarderei la colonna vertebrale o il backbone.

    
risposta data 01.12.2011 - 05:06
fonte

Leggi altre domande sui tag