2013-08-24 12 views
9

Ho già familiarità con Knockout, Angular, Sammy, jQuery, un po 'di brezza e un po' di brace. Le esercitazioni e iniziare per Durandal sembrano dire tutto ... beh, per prima cosa aggiungi jQuery e magari a eliminazione diretta.Qual è lo scopo di durandal?

Gestisce qualcosa di completamente diverso da tutti questi? Che bisogno ha di indirizzare in modo tale che possa essere usato con knockout?

È solo un guazzabuglio di routing lato client e componenti ui?

Cosa fa da solo concettualmente?

risposta

11

Durandal è simile a Angular in quanto fornisce un framework MV * per applicazioni Web SPA client-side.

angolare è in gran parte, se non tutti, codice personalizzato, mentre Durandal prende librerie esistenti, soprattutto Knockout e RequireJS (Sammy dipendenza è stato ovviato con la versione 2.0), e fornisce l'impianto idraulico per fornire la funzionalità SPA completo, compreso Vista/visualizzare la composizione del modello e la navigazione hash-tag (spa).

Come per Knockout, Durandal fa molto affidamento su Knockout per comporre viste e visualizzare modelli. La vista e il modello di vista vengono automaticamente associati ai dati quando la vista viene iniettata nel DOM. Il vantaggio è che posso utilizzare Knockout per fornire l'associazione dati V/VM e consentire a Durandal di capire quale v/vm utilizzare, recuperarlo dal server e comporlo nella schermata corrente.

Restated, Durandal fornisce un modo per mappare viste/modelli di vista a percorsi basati su tag hash, che forniscono la navigazione SPA. Specificando uno shell o un layout, vista come vista principale, è possibile aggiungere un segnaposto che Durandal utilizza per implementare quello che è fondamentalmente un pattern di "screen presenter". Durandal ascolta le modifiche dell'URL e può attivarsi automaticamente, data-bind (utilizzando Knockout), e visualizzare la vista che corrisponde alla rotta URL corrente.

Se si ha familiarità con WPF, si può pensare a Durandal come a fornire funzionalità prismatiche come la sua offerta principale, insieme ad altri accessori progettati per supportare la creazione di applicazioni a pagina singola per il Web.

+0

io direi che è molto più vicino a Caliburn.Micro di Prism. – cubski

9

Durandal è un framework SPA "completo", mentre Knockout è solo un collegamento dati. È simile in ambito angolare.

+1

Mentre breve, la mia risposta è accurata e non degna di un downvote. Che ne dici di aggiungere un commento correttivo al posto del downvoting? (supponendo che tu abbia anche una risposta migliore ..) – 7zark7

+0

Non ho fatto nessuna downvoting sulle risposte qui, non sono sicuro del perché ce n'era uno per te e uno per il tyrsius – Maslow

+0

Conosco bud, era un po 'down-voter casuale. Non era diretto a te. – 7zark7

10

Durandal ha numerosi vantaggi, ma si basa anche su librerie esistenti. Esso ha una dipendenza da

  1. RequireJS
  2. Knockout
  3. jQuery

Questi non sono "forse." Sono dure dipendenze. Durandal non può funzionare senza di loro.

Al suo nucleo, Durandal add è il potente comporre vincolante per eliminazione diretta. Questa associazione localizzerà automaticamente la vista (un file HTML) quando passerà un viewmodel, lo recupererà dal server, lo collegherà al viewmodel e li inserirà nel DOM. Un comportamento simile può essere ottenuto usando il knockout template binding, ma la gestione dei template può diventare ingombrante. La composizione aggiunge anche eventi del ciclo di vita al processo, che possono aiutare a garantire che i modelli di visualizzazione siano configurati e abbattuti correttamente. Fornisce anche la cache DOM opzionale.

Durandal fornisce anche alcune strutture di struttura. Fornisce una semplice API plugin, che viene utilizzata dal suo router per fornire la navigazione SPA tramite hash o push-state. Incoraggia l'organizzazione di viewmodels e view tramite la convenzione sovrascrivibile, così come l'uso dei moduli Require AMD. Fornisce anche un semplice modulo eventi per consentire la creazione e il consumo di eventi di ampiezza applicativa.

Ha molte altre piccole caratteristiche oltre a questo, il Durandal Homepage ha una bella referenza.

1

Magento 2 stand on Knockout e RequireJS. Durandal può essere aggiunto sopra di esso in modo più possibilità di venire con utilizzare le ultime funzionalità (componenti, modelli, ecc).

E 'meglio perché:

  • è più stabile e maggiore rispetto ad altri framework, meno errori si verificano

  • ottima documentazione

  • semplice API

  • più SEO amichevole! (puoi avere tutto html seved e usarlo come componente, situazione mista). Angular 2 si basa sulla logica di mixaggio con la presentazione.

  • HTML5 dati standard e il legame con una migliore redability codice (basta provare leggere html nel reagire)

  • ancora mantenuto

  • creatore di Durandal è stato per qualche tempo Developer angolare (3 mesi), quindi non c'è un po 'di somiglianza sta succedendo nel pensare.

  • Lavoro nel vecchio browser! (IE6>)

Ci sono anche dei contro, ma soprattutto perché non danno tanto la funzione in un pacchetto e non di recente, la tecnologia all'avanguardia, è stato adottato.

Motivi condividono più punto circa Durandal :)

Più c'è: https://johnpapa.net/compare-durandal-to-angular-not-knockout-to-angular/