10

So che questo argomento probabilmente diventerà soggettivo, quindi non si tratta della mia particolare applicazione web su cui sto lavorando.Quando dovrei usare un framework MVC in JavaScript?

Per JavaScript, non ho lavorato con le librerie MVC come Backbone.js ma vedo il vantaggio nella logica e nelle viste di disaccoppiamento. D'altra parte, potrebbe non valere la pena dedicare del tempo per apprendere la struttura e adattare l'applicazione per farne uso. Inoltre, la gestione di tutte le viste in JavaScript rende la SEO molto più difficile, suppongo.

Quindi, come dovrei decidere se ha senso utilizzare Backbone.js o un framework simile dato il concetto di un'applicazione web? Da cosa dipende la decisione?

Qualsiasi aiuto per rendere la domanda più obiettiva è il benvenuto.

+0

Underscore.js sembra avere porte in altre lingue. Scusa la mia ignoranza, ma cosa ha a che fare Underscore con MVC? Sembra solo aggiungere alcune funzioni di utilità. –

+0

Fornisce [modelli] (http://backbonejs.org/#Model) e [viste] (http://backbonejs.org/#View) per applicazioni Web JavaScript. Hai ragione che è meno un quadro e più un set di strumenti. Ma non ci ho lavorato completamente. Ecco un articolo su [Backbone.js e MVC tradizionale] (http://backbonejs.org/#FAQ-mvc). – danijar

+2

sono rimasto completamente sorpreso quando per la prima volta sono venuto a sapere che MVC può essere applicato anche in javascript..angular, underscore, backbone è un esempio ... ma quando usarlo è ancora un grosso punto interrogativo per me ... una buona spiegazione potrebbe aiutare molte persone. + 1 per la domanda –

risposta

7

Ci sono molti framework per javascript MVC (o MV *) sul lato client. La maggior parte sembra avere un'idea diversa di cosa sia MVC e come dovrebbe funzionare insieme alla tua applicazione web.

Si dovrebbe considerare un framework MV * se la complessità nel proprio lato client javascript diventa difficile da gestire. Se si dispone di un team che costruisce un'applicazione a singola pagina (SPA) altamente dinamica che esegue molte comunicazioni asincrone con il back-end, è necessario considerarlo. È facile finire con un codice javascript molto disordinato altrimenti.

una MV * quadro vi aiuterà in uno o più dei seguenti modi:

  • definendo come il codice dovrebbe essere strutturato. Questo viene fatto in vari gradi a seconda di quanto sia convinto il quadro. Backbone, per esempio, si considera una libreria piuttosto che un framework e quindi lascia più del decision making all'utente
  • legando HTML al modello. Quindi, se i dati cambia la pagina verrà aggiornata automaticamente (e viceversa)
  • fornendo funzioni utili come la cronologia URL (per le applicazioni a pagina singola) e validazione
1

Come sapete struttura MVC può essere incluso in JavaScript utilizzando backbone.js con underscore.js e altre librerie simili concentrandosi principalmente su ogni campo di modulo come proprietà in un'entità tale che gli enti possono essere utilizzati diversi scopi struttura MVC è mantenuta per un facile manipolazione in javascript Queste strutture sono valide per il binding di eventi, manipolazione dom, serializzazione, ecc.

Dipende dallo scopo dell'applicazione per scegliere quale struttura è adatta se la sua struttura mvc o mvvm per javascript. La struttura MVVM può essere inclusa nel javascript tramite angular.js o knockoutjs o altre librerie per il collegamento dinamico per visualizzare il componente Javascript può essere utilizzato
L'architettura MVVM sarà utile per mantenere il binding del campo modulo senza ricaricare o ajax Ci sono molte applicazioni mantenendo l'architettura in js e ne ho indicati solo alcuni.

per esempio: Serialize form inputs to JSON using Backbone.js

In questo esempio i valori del form vengono recuperati come modello e poi si può essere manipolato e può aggiungere la logica di business e può essere serializzato o vincolante evento e può fare la stampa o qualsiasi cosa

7

Penso che dipende dal vostro progetto.Ecco una lista di controllo che può aiutarti a decidere se utilizzare o meno il framework MV * di frontend.

  • sacco di richiesta AJAX per backend
  • Molti della funzionalità non richiede piena pagina di ricarica. Come aggiungere un commento, una paginazione o uno scroll infinito.
  • Hai modelli/API REST al backend. Puoi semplicemente replicare/utilizzare la stessa struttura al front-end.
  • Si stanno condividendo funzioni di manipolazione logica/dom attraverso pagine diverse.

Aggiungerò altro se trovo altri punti. Questo è quello che posso pensare adesso e questa non è una lista completa. Qualsiasi suggerimento è benvenuto.

Problemi correlati