Gibt es clientseitige JavaScript MVC (Mikro-) Frameworks?
Ich habe ein ziemlich kompliziertes HTML-Formular, das vom MVC-Muster profitieren würde.
Ich stelle mir vor, eine gute Lösung würde Folgendes bieten:
- Modell und Ansicht aktualisieren den Controller, wenn sich die Werte ändern (Beobachtermuster)
- Füllen Sie das Modell aus den Formulardaten, wenn die Seite geladen wird
- Füllen Sie das Formular aus dem Modell aus, wenn sich das Modell ändert
Ajax, Comet, JSONP und all dieser Jazz sind ein ernsthafter Overkill.
javascript
model-view-controller
forms
Nicholaides
quelle
quelle
Antworten:
Backbone ist ein großartiges, leichtes Framework. Probieren Sie es aus: http://backbonejs.org/
quelle
JavaScriptMVC ist eine hervorragende Lösung. Es ist alles ein Plugin-Ansatz, mit dem Sie nur die Funktionen auswählen können, die Sie benötigen. Ab 2.0 basiert es auf jQuery.
Bei der schrittweisen Verbesserung Ihrer Website bleibt dies dem Benutzer überlassen, da JMVC nur eine mittlere Ebene für die Entwicklung darstellt. Es liegt an Ihnen, diese Designentscheidung selbst zu treffen.
JavaScriptMVC ist jedoch aufgrund seiner leistungsstarken, auf Ereignisdelegation basierenden Controller einfach die beste JavaScriptMVC-Bibliothek für allgemeine Zwecke.
Mit der Ereignisdelegierung müssen Sie keine Ereignishandler anhängen und einfach Regeln für Ihre Seite erstellen.
Schließlich ist JMVC viel mehr als eine MVC-Architektur. Es hat alle Teile des Entwicklungszyklus abgedeckt mit:
quelle
Spine hat eine API ähnlich wie Backbone, ist aber viel kleiner. Es verfügt über eine prototypische Vererbung.
quelle
AngularJS arbeitet gut mit jQuery zusammen und hilft Ihnen sehr bei der MVC-Struktur und der strikten Trennung von Bedenken.
Vollständige Testumgebung und Abhängigkeitsinjektion enthalten ...
Überprüfen Sie es auf http://angularjs.org
quelle
In der Tat gibt es: http://www.javascriptmvc.com/
Ich denke, Sie werden dies als ausreichend empfinden!
quelle
Ich denke, dieser sieht aus wie etwas, das Sie überprüfen sollten: http://knockoutjs.com/
(Als Silverlight / Wpf-Programmierer war dies die Bibliothek, die mich dazu brachte, endlich Javascript zu lernen. Sie basiert auf dem MVVM-Muster (Model-View-View-Model), da es mir momentan wie eine gute Wahl erscheint!)
quelle
Es gibt die beliebte Backbone.js
quelle
Ember.js
Dies sind die drei Funktionen, die Ember zu einer Freude machen:
Bindungen
Verwenden Sie Bindungen, um die Eigenschaften zwischen zwei verschiedenen Objekten synchron zu halten. Sie deklarieren eine Bindung nur einmal und Ember stellt sicher, dass Änderungen in beide Richtungen weitergegeben werden.
So erstellen Sie eine Bindung zwischen zwei Objekten:
Mit Bindungen können Sie Ihre Anwendung mithilfe des MVC-Musters (Model-View-Controller) erstellen und sich dann darauf verlassen, dass die Daten von Schicht zu Schicht immer korrekt fließen.
Berechnete Eigenschaften
Mit berechneten Eigenschaften können Sie eine Funktion wie eine Eigenschaft behandeln. Berechnete Eigenschaften sind nützlich, da sie wie jede andere Eigenschaft mit Bindungen arbeiten können.
Vorlagen automatisch aktualisieren
Ember verwendet Handlebars, eine semantische Vorlagenbibliothek. Um Daten aus Ihrer JavaScript-Anwendung in das DOM zu übernehmen, erstellen Sie ein Tag und fügen Sie sie in Ihr HTML ein, wo immer der Wert angezeigt werden soll:
quelle
Stapes.js
Vollständige Offenlegung: Ich bin der Autor dieser Bibliothek :)
Wenn Sie nach etwas wirklich Winzigem suchen (1,5 KB minimiert / gezippt), schauen Sie es sich an und sagen Sie mir, ob es Ihnen gefällt.
quelle
new
Operator). Was unnötig erscheint, ist noch ein andereseach
undmap
. Ich habe sie bereits in Underscore.js und jQuery .Wenn Ihre Anforderungen wirklich einfach sind, können Sie Ihre eigene einfache MVC schreiben, wie es Alex Netkachov getan hat.
Seine Beispiele basieren auf Dojo (Hinweis: Sie funktionieren auf seiner Seite aufgrund einer fehlenden Datei dojo.js nicht für mich), aber Sie können dem Muster in einfachem Javascript folgen.
quelle
Es ist wahrscheinlich übertrieben für das, was Sie brauchen, aber SproutCore ist ein MVC-Framework und sieht nicht schwerer aus als JavaScriptMVC oder TrimPaths Junction .
Leider scheint keines davon auf dem Prinzip der progressiven Verbesserung aufzubauen .
quelle
Das beliebte ActionScript MVC-Framework PureMVC wurde kürzlich auf JavaScript portiert. Ich hatte noch keine Gelegenheit, es auszuprobieren, aber ich bin zuversichtlich, dass es gut ist.
quelle
Bitte überprüfen Sie auch jquery-Claypool .
jquery-Claypool ist ein kleines, schnelles, schienenfähiges MVC-Framework, das auf JQuery basiert und auf meinen Erfahrungen mit Django, Rails, Spring usw. basiert. Es ist sehr leicht und läuft sowohl auf Client- als auch in Serverumgebungen.
Es bietet ein Routing-Framework für sauberes MVC, Kategorieprotokollierung, Filter (aop), verzögerte Erstellung von Controllern, Umkehrung der Steuerung, Konvention über Konfiguration und nicht viel mehr.
es macht nichts, was jquery bereits macht, fühlt sich an wie jquery und funktioniert wie ein guter Rahmen sollte: einfach.
JQuery-Claypool
Hoffe du schaust es dir an.
quelle
Jamal ist das leichteste, das ich je gesehen habe. Es basiert auch auf jQuery (Bonus). Habe nicht benutzt.
http://jamal-mvc.com/
quelle
Wenn Sie die Dinge unter Kontrolle und ganz einfach halten möchten, benötigen Sie möglicherweise kein Framework, sondern implementieren einfach Ihr eigenes MVC-Muster. Überprüfen Sie einfach diesen Artikel: Model-View-Controller (MVC) mit JavaScript von Alex Netkachov auf 2006.
quelle
Hier ist eine Liste aller Open-Source-JavaScript-Frameworks, die der Menschheit bekannt sind.
http://getopensource.info/explore/javascript/framework/
Oder nur MVC-Frameworks
http://getopensource.info/explore/javascript/mvc/
Offenlegung: Ich bin der Entwickler dieser Website.
quelle
Versuchen Sie es mit Kitty . Es ist nur 1,4 KB groß und seine einzige Abhängigkeit ist EJS.
quelle
UPDATE 2016: Sammy.js scheint aufgegeben zu sein.
Schauen Sie sich Sammy.js an
Text von der Website:
Ein kleines Webframework mit Klasse.
quelle
Ich würde das nicht als Mikro- Framework bezeichnen, aber es sieht auf jeden Fall interessant aus: Cappuccino Web Framework
quelle
CorMVC, einfach zu verstehen und zu Beginn, jquery-basiert und nicht von einer Servertechnologie abhängig
quelle
Ich habe ein sehr einfaches Javascript MVC-Framework namens MCV entwickelt . Es macht nicht genau das, wonach Sie fragen, ist aber mit Helfern leicht erweiterbar. Wie auch immer, es ist definitiv Mikro (1,9 kb verpackt).
Es funktioniert mehr oder weniger wie Jamal, aber ich habe mich aus zwei Gründen entschlossen, mein eigenes zu rollen:
quelle
Nur um die Liste etwas vollständiger zu machen: ActiveJS
quelle
Ich habe das AngularJS positiv bewertet (vollständige Offenlegung, ich bin in begrenztem Umfang an den Bemühungen der Winkelentwickler beteiligt) und bin sehr aufgeregt darüber. Ich habe einen Side-by-Side-Vergleich durchgeführt, bei dem eine Funktion für ein internes Projekt (leider keine Abmeldung zum Freigeben) in AngularJS und Backbone implementiert wurde. Es war eine großartige Übung und am Ende neige ich sehr zu Angular. Die Hauptentwickler sind großartig darin, Fragen zu beantworten, und sie haben mit integrierter Datenbindung, Unit / e2e-Tests und Dokumentation wirklich gute Arbeit geleistet. Es ist noch in der Beta mit 1.0 in naher Zukunft. Die Beta ist sehr stabil.
Es gibt einen gewissen Paradigmenwechsel, und sie verfolgen einen ziemlich anderen Ansatz als die meisten anderen. Die Integration Ihrer bevorzugten JQuery-Plugins ist ein wenig mühsam, aber machbar und wurde bereits durchgeführt (Angular-Contribution auf Github).
Ich werde sagen (und dies ist ein Problem für die meisten js-zentrierten Frameworks), stellen Sie sicher, dass Sie untersuchen, wie Sie Ihre Inhalte SEO-freundlich machen können (wenn es für Sie wichtig ist). Seit ich im Juni der Angular-Community beigetreten bin, habe ich festgestellt, dass das Interesse wächst und eine Reihe von Leuten Beiträge verfassen, in denen sie sagen, dass sie sich Backbone und andere angesehen haben, aber wirklich mögen, was sie in Angular sehen.
quelle
Maverick ist ein kleines JavaScript-MVC-Framework - http://maverick.round.ee
quelle
Ich werde mich auch hier melden - AFrameJS arbeitet mit jQuery, MooTools und Prototype.
quelle
Ein anderer: MooTools-MVC
quelle
Es gab ein JavaScript-Framework mit Schlüsselwertbindung namens "Coherent", das von Apples Cocoa Bindings inspiriert war. Das Framework wurde von Apple gekauft, aber es gibt noch eine alte Kopie unter http://github.com/trek/coherentjs/tree/master .
quelle
Probieren Sie dieses jQuery-basierte Javascript-MVC-Framework aus .
quelle
Noch eine, leicht und winzig: http://jqnano.oleksiy.pro/
quelle
Can.js hat alles was Sie brauchen und wiegt nur 8 KB. Es hat die besten Teile von JavaScriptMVC übernommen und es zu einem kleinen, aber dennoch umwerfenden Framework mit Beobachtern, Widgets, Bindungen und Werken zusammengefasst. Es ist kompatibel mit wichtigen Frameworks ( jQuery , Dojo Toolkit , MooTools usw.). Die Dokumentation ist ausgezeichnet und die Autoren reagieren. Es ist definitiv einen Blick wert.
quelle