10

Ich weiß, dass dieses Thema wahrscheinlich subjektiv wird, daher geht es nicht um meine spezielle Webanwendung, an der ich arbeite.Wann sollte ich ein MVC-Framework in JavaScript verwenden?

Für JavaScript habe ich nicht mit MVC-Bibliotheken wie Backbone.js gearbeitet, aber ich sehe den Vorteil in der Entkopplung von Logik und Ansichten. Auf der anderen Seite ist es möglicherweise nicht die Zeit wert, um den Rahmen zu erlernen und die Anwendung anzupassen, um davon Gebrauch zu machen. Darüber hinaus macht die Handhabung aller Ansichten in JavaScript SEO viel schwieriger, denke ich.

Also wie sollte ich entscheiden, ob es sinnvoll ist, Backbone.js oder ein ähnliches Framework angesichts des Konzepts einer Webanwendung zu verwenden? Auf was hängt die Entscheidung ab?

Jede Hilfe, um die Frage objektiver zu machen, ist willkommen.

+0

Underscore.js scheint Ports in andere Sprachen zu haben. Entschuldige meine Unwissenheit, aber was hat Underscore mit MVC zu tun? Es scheint nur einige nützliche Funktionen hinzuzufügen. –

+0

Es bietet [models] (http://backbonejs.org/#Model) und [views] (http://backbonejs.org/#View) für JavaScript-Webanwendungen. Sie haben Recht, das ist weniger ein Framework und mehr ein Toolset. Aber ich habe mich nicht vollständig damit beschäftigt. Hier ist ein Artikel über [Backbone.js und traditionelle MVC] (http://backbonejs.org/#FAQ-mvc). – danijar

+2

Ich war völlig überrascht, als ich das erste Mal erfuhr, dass MVC auch in Javascript angewendet werden kann..angular, Unterstreichung, Backbone als Beispiel ... aber wenn es zu verwenden ist es immer noch ein großes Fragezeichen für mich ... Eine gute Erklärung würde vielen Menschen helfen. + 1 für die Frage –

Antwort

7

Es gibt viele Client-Seite Javascript MVC (oder MV *) Frameworks da draußen. Die meisten scheinen eine andere Vorstellung davon zu haben, was MVC ist und wie es mit Ihrer Webanwendung zusammenarbeiten soll.

Sie sollten ein MV * -Framework in Erwägung ziehen, wenn die Komplexität in Ihrer Clientseite Javascript wird schwierig zu verwalten. Wenn Sie ein Team haben, das eine hochdynamische Single-Page-Application (SPA) erstellt, die viel asynchrone Kommunikation mit dem Backend durchführt, dann sollten Sie dies berücksichtigen. Es ist einfach, am Ende mit sehr unordentlichem JavaScript-Code zu enden.

Ein MV * Rahmen werden Sie in einem oder mehreren der folgenden Arten helfen:

  • durch die Definition, wie der Code aufgebaut werden soll. Dies geschieht in unterschiedlichem Maße, je nachdem, wie rechtmäßig der Rahmen ist. Backbone zum Beispiel betrachtet sich selbst als eine Bibliothek und nicht als ein Framework und lässt somit mehr von der Entscheidungsfindung übrig, die den Benutzer
  • bindet, indem er HTML an Modell bindet. Also, wenn Sie Ihre Daten ändert sich die Seite automatisch aktualisiert werden (und umgekehrt)
  • durch nützliche Funktionen wie URL-Geschichte bietet (für einzelne Seite Apps) und Validierung
1

Wie Sie MVC-Struktur verfügt, kann durch die Verwendung backbone.js mit underscore.js und anderen ähnlichen Bibliotheken in erster Linie konzentriert sich auf jedes Formularfeld als Eigenschaft in einer Einheit, so dass Entitäten verschiedene Zwecke MVC Struktur beibehalten wird verwendet werden kann, für die einfache in Javascript enthalten sein Manipulation in Javascript Diese Struktur gut für Event Binding, Dom Manipulation, Serialisierung, etc.

Es hängt von der Anwendung Zweck für die Wahl, welche Struktur geeignet, ob seine MVC oder MVVM Struktur für Javascript. MVVM Struktur kann im Javascript durch angular.js oder knockoutjs oder andere Bibliotheken für dynamische Bindung enthalten sein, um Komponente zu betrachten Javascript kann verwendet werden MVVM Architektur ist nützlich für die Aufrechterhaltung der Formularfelderbindung ohne Nachladen oder AJAX Es gibt eine Menge Anwendung, indem man Architektur in js und ich habe nur ein paar aufgezeigt.

für zB: Serialize form inputs to JSON using Backbone.js

In diesem Beispiel werden die Formularwerte als Modell abgerufen und dann kann es manipuliert werden und kann Geschäftslogik hinzufügen und serialisiert werden kann oder Ereignisbindung und Druck machen kann oder irgend etwas

7

Ich denke, es ist an Ihrem Projekt abhängt.Hier ist eine Checkliste, die Ihnen bei der Entscheidung helfen kann, ob Sie das Frontend MV * Framework verwenden sollen oder nicht.

  • Viele Ajax-Request
  • Viele Ihrer Funktionalität Backend nicht ganze Seite neu laden müssen. So fügen Sie einen Kommentar, eine Seitennummerierung oder eine unendliche Bildlaufleiste hinzu.
  • Sie haben Modelle/REST-API im Backend. Sie können dieselbe Struktur nur am Frontend replizieren/verwenden.
  • Sie teilen Logik-/Dom-Manipulationsfunktionen auf verschiedenen Seiten.

Ich werde mehr hinzufügen, wenn ich weitere Punkte finde. Das ist, was ich jetzt denken kann, und das ist keine vollständige Liste. Irgendwelche Vorschläge sind willkommen.

Verwandte Themen