Wenn man es von der internen Architektur und dem Konzept unterscheidet, kann das aktuelle JavaScript-Framework in 5 Kategorien unterteilt werden.
Typ 1
Das Aufkommen namespaceorientierter Klassenbibliotheken oder Frameworks, wie das Erstellen eines Arrays mit new Array() oder das Generieren eines Objekts mit new Object(), erfolgt vollständig im Java-Stil, sodass wir ständig ein bestimmtes Objekt als Root verwenden können Fügen Sie Objektattribute oder sekundäre Objektattribute hinzu, um den Code wie eine Pyramide anzuordnen. Zu den repräsentativen Werken gehören frühe YUI und EXT.
Typ 2
Es entstanden klassenfabrikorientierte Frameworks wie der berühmte Prototype sowie Mootools, Base2 und Ten. Mit Ausnahme des grundlegendsten Namespace sind andere Module grundsätzlich Klassenobjekte, die von Klassenfabriken abgeleitet sind. Insbesondere in Mootools 1.3 sind alle Typen in Typtypen gekapselt.
Typ 3
ist ein selektororientiertes Framework, das durch jQuery dargestellt wird. Der gesamte Framework- oder Bibliothekskörper ist ein spezielles Array-Objekt, das zentralisierte Vorgänge erleichtert – da der Selektor normalerweise N Elementknoten gleichzeitig auswählt Sie wurden zusammen behandelt. jQuery enthält mehrere großartige Dinge: „Keine neue Instanziierung“-Technologie, $(expr) gibt eine Instanz zurück, ohne sie explizit zu erneuern, erhält zuerst alle Zugriffsregeln: Daten-Caching-System. Auf diese Weise können die Ereignisse des Knotens kopiert werden. Darüber hinaus wurde auch IIFE (Immediately-Invoked Function Expression) entdeckt.
Typ 4
sind Frameworks, die mit Loadern in Reihe geschaltet sind. Sie verfügen alle über mehrere JavaScript-Dateien, und jede JavaScript-Datei wird nach festen Regeln geschrieben. Das bekannteste davon ist AMD. Modularität ist ein Zeichen der Industrialisierung von JavaScript. Die erste von vielen „goldenen Regeln“, die in „The Art of Unix Programming“ aufgeführt sind, sind Module, die besagt: „Die einzige Möglichkeit, komplexe Software ohne Fehler zu schreiben, besteht darin, eine Reihe einfacher Module mit klar definierten Schnittstellen zu kombinieren, sodass zunächst Die meisten Probleme treten nur lokal auf, daher besteht immer noch die Hoffnung, den lokalen Bereich zu verbessern oder zu optimieren, ohne den gesamten Körper zu beeinträchtigen.“ Viele interne Unternehmensframeworks übernehmen grundsätzlich diese Architektur, z. B. Dojo, YUI, Kissy, Qwrap und Mass usw.
Typ 5
Es handelt sich um ein MV*-Framework mit einer klaren Schichtenarchitektur. Das erste sind JavaScript MVC (jetzt CanJS), BackboneJS und SpineJS und dann MVVM-Frameworks, die eher dem eigentlichen Front-End entsprechen, wie Knockout, Ember, Angular, Avalon und WinJs. Im MVVM-Framework werden die ursprünglichen DOM-Operationen durch deklarative Bindung ersetzt, die vom Framework selbst verwaltet wird, und Benutzer müssen sich nur auf den Geschäftscode konzentrieren.
Im Folgenden finden Sie Schlussfolgerungen zu den Framework-Eigenschaften.
Der Betrieb grundlegender Datentypen ist die Grundlage. Beispielsweise bietet jQuery Methoden wie trim, camelCase und map. Für aufdringliche Frameworks wie Prototype.js werden dem Prototyp Methoden wie camelize hinzugefügt.
Die Bestimmung des Typs ist wichtig, und die übliche Form ist die isXXX-Serie.
Selektoren, domReady und Ajax sind Standardfunktionen moderner Frameworks.
Die Knotendurchquerung, die Stiloperation und die Attributoperation haben oberste Priorität. Ob sie unterteilt werden, hängt vom Umfang des Frameworks ab.
Browser Sniff ist veraltet, Feature Detect wird verwendet. Allerdings weist die Funktionserkennung immer noch Einschränkungen auf. Wenn Sie auf Renderingfehler, Sicherheitsrichtlinien oder die Korrektur bestimmter Fehler in einer bestimmten Browserversion abzielen, müssen Sie weiterhin Browser-Sniffing verwenden. Es sollte jedoch als Modul oder Plugin eigenständig sein und den Kern des Frameworks entfernen.
Heutzutage unterstützen gängige Event-Systeme Event-Proxys.
Daten-Caching und -Verarbeitung Derzeit bieten Browser zu diesem Zweck auch Daten-*-Attribute an, diese sind jedoch nicht sehr einfach zu verwenden und erfordern eine weitere Kapselung durch das Framework.
Animations-Engine: Sofern Ihr Framework nicht durch ein Animations-Framework der obersten Ebene wie script.aculo.us wie Prototype.js unterstützt wird, ist es am besten, es ebenfalls hinzuzufügen.
Einfache Entwicklung und Skalierbarkeit von Plug-Ins.
Stellen Sie Lösungen wie „Deferred“ bereit, um die asynchrone Verarbeitung zu bewältigen.
Auch wenn eine Klassenfabrik nicht speziell bereitgestellt wird, sollte es eine Methode namens „extend“ oder „mixin“ geben, um das Objekt zu erweitern. Obwohl jQuery keine Klassenfabrik hat, muss es in der jQuery-Benutzeroberfläche eine hinzufügen, was seine Bedeutung zeigt.
Seit jQuery eine Methode namens noConflict herausgebracht hat, haben neue Frameworks diese Methode übernommen, um in der engen Lücke zu bestehen.
Viele Frameworks legen großen Wert auf Cookie-Vorgänge.