MVVM ist die Abkürzung für Model-View-ViewModel. Es handelt sich um ein Architekturmuster, das auf der Front-End-Entwicklung basiert. Sein Kern besteht darin, eine bidirektionale Datenbindung von View und View Model bereitzustellen, die die Zustands?nderungen von View Model erm?glicht automatisch an View übergeben werden soll, wird dies als bidirektionale Datenbindung bezeichnet.
Vue.js ist eine Javascript-Bibliothek, die eine bidirektionale Datenbindung im MVVM-Stil bietet und sich dabei auf die Ansichtsebene konzentriert. Sein Kern ist die VM in MVVM, n?mlich ViewModel. ViewModel ist für die Verbindung von View und Model verantwortlich, um die Konsistenz von Ansicht und Daten sicherzustellen. Diese schlanke Architektur macht die Front-End-Entwicklung effizienter und komfortabler.
Warum erscheint MVVM?
Ich kam 2015 mit MVVM in Kontakt. Man kann sagen, dass 2015 das hei?este Jahr für MVVM war. Davor wusste ich nur, dass MVC vor etwa 5 Jahren, also im Jahr 2011, eingeführt wurde Als ich jung war, lernte ich gerade Programmiersprachen und das klassische SSH-Framework in Java, um eine Standard-MVC-Architektur zu erstellen. Um ehrlich zu sein, habe ich die MVC-Architektur schon seit so vielen Jahren verwendet, aber ich habe nie ein tiefes Verst?ndnis davon gehabt, bis ich mit Vue.js in Berührung gekommen bin Die MVVM-Architekturideen, und als ich dann auf MVC zurückblickte, wurde mir pl?tzlich klar, dass MVC die Abkürzung für Model-View-Controller ist, was mit anderen Worten ?a“ bedeutet Eine Standard-Webanwendung besteht aus diesen drei Teilen:
Ansicht wird verwendet, um dem Benutzer auf irgendeine Weise Daten zu pr?sentieren
Modell sind eigentlich Daten
Controller empf?ngt und verarbeitet Anfragen von Benutzer und gibt das Modell an den Benutzer zurück
in den Jahren, bevor HTML5 popul?r wurde, galt MVC als beste Methode für Webanwendungen. Dies liegt daran, dass die Ansichtsebene von Webanwendungen relativ einfach ist und die Daten Die vom Front-End ben?tigte Ansichtsschicht dient haupts?chlich der Anzeige. Damals wurde der Controller für die Verarbeitung komplexer Gesch?ftslogiken empfohlen, sodass die Ansichtsschicht relativ leichtgewichtig war Thin-Client-Idee.
Von 2010 bis 2011 war das Konzept von HTML5 ein Hype und begehrt. Im Jahr 2012 gab das W3C offiziell bekannt, dass die HTML5-Spezifikation offiziell fertiggestellt wurde. Als ich 2013 zum ersten Mal in das Unternehmen eintrat, kam ich mit Sench Touch in Kontakt, einem HTML5-Framework, das zum Erstellen mobiler Anwendungen verwendet wird. Das Frontend nutzt die MVC-Architektur und wird als eigenst?ndiges Projekt gepflegt.
Warum muss das Frontend entwickelt werden und MVC verwenden?
Im Vergleich zu HTML4 besteht der gr??te Vorteil von HTML5 darin, dass es einige sehr nützliche Funktionen für mobile Ger?te bietet, wodurch HTML5 in der Lage ist, Apps zu entwickeln. Die gr??ten Vorteile der Entwicklung von Apps mit HTML5 sind plattformübergreifende, schnelle Iteration und Um Arbeitskosten zu sparen und die übermittlungseffizienz zu steigern, begannen viele Unternehmen, herk?mmliche Apps umzuwandeln und ersetzten nach und nach native Seiten durch H5. Bis 2015 verfügten viele Apps auf dem Markt über mehr oder weniger eingebettete H5-Seiten.
Da H5 zum Erstellen der App verwendet wird, muss die Ansichtsschicht nicht nur Daten verwalten, verschiedene Zust?nde von Benutzervorg?ngen verwalten und auch verschiedene Benutzerbetriebsverhalten verwalten. usw. Daher ben?tigt das Frontend auch ein MVC-?hnliches Framework, um diese komplexen Logiken zu verwalten und die Entwicklung effizienter zu gestalten. Zu diesem Zeitpunkt hat sich MVC jedoch geringfügig ge?ndert:
UI-Layout anzeigen, Daten anzeigen
Modell verwaltet Daten
Controller reagiert auf Benutzervorg?nge und aktualisiert das Modell auf Ansicht
Dieses MVC-Architekturmuster scheint für Basisanwendungen in Ordnung zu sein und steht auch im Einklang mit der mehrschichtigen Idee der Softwarearchitektur. Tats?chlich hoffen die Menschen mit der kontinuierlichen Weiterentwicklung von H5, dass mit H5 entwickelte Anwendungen mit Native vergleichbar sein k?nnen oder der nativen App-Erfahrung nahekommen. Daher ist die Komplexit?t von Front-End-Anwendungen nicht mehr das, was sie einmal war. Zu diesem Zeitpunkt hat das Frontend drei wichtige Schwachstellen aufgedeckt:
1 Entwickler rufen eine gro?e Anzahl derselben DOM-APIs im Code auf, was die Verarbeitung umst?ndlich und redundant macht und die Wartung des Codes erschwert.
2. Eine gro?e Anzahl von DOM-Vorg?ngen verringert die Leistung beim Rendern der Seite und verlangsamt die Ladegeschwindigkeit, was sich auf das Benutzererlebnis auswirkt.
3. Wenn sich das Modell h?ufig ?ndert, müssen Entwickler die Ansicht aktiv aktualisieren. Wenn sich das Modell durch Benutzervorg?nge ?ndert, müssen Entwickler auch die ge?nderten Daten mit dem Modell synchronisieren Ist es umst?ndlich, aber es ist auch schwierig, den Status komplexer und sich ?ndernder Daten aufrechtzuerhalten?
Tats?chlich bestand das frühe Aufkommen von JQuery darin, dass das Front-End das DOM pr?ziser bedienen konnte, aber es l?ste nur das erste Problem, und die n?chsten beiden Probleme existierten immer mit dem Front-End.
Das Aufkommen von MVVM l?st die oben genannten drei Probleme perfekt.
ViewModel verbindet die Ansichtsebene und die Modellebene durch bidirektionale Datenbindung, und die Synchronisierung zwischen Ansicht und Modell erfolgt vollst?ndig automatisch ohne menschliches Eingreifen, sodass sich Entwickler nur auf die Gesch?ftslogik konzentrieren müssen und keine manuellen Vorg?nge ben?tigen Auf die Synchronisierung des Datenstatus muss nicht geachtet werden. Die Verwaltung des komplexen Datenstatus wird vollst?ndig von MVVM verwaltet.
Details zu Vue.js
Vue.js kann als die beste Praxis der MVVM-Architektur bezeichnet werden. Es konzentriert sich nicht nur auf die bidirektionale Datenbindung. Vergleichen wir aber auch die leichtgewichtigen JS-Bibliotheken. Die API ist einfach und benutzerfreundlich. Es gibt vorgefertigte Tutorials zu den Grundkenntnissen von Vue, daher werde ich hier nicht auf Details eingehen. Werfen wir einen kurzen Blick auf einige Implementierungsdetails der bidirektionalen Bindung in Vue.js:
Vue. js verwendet den Getter und Getter des Object.defineProperty-Setters in Kombination mit dem Beobachtermuster, um die Datenbindung zu implementieren. Wenn Sie ein einfaches Javascript-Objekt als Datenoption an eine Vue-Instanz übergeben, durchl?uft Vue seine Eigenschaften und konvertiert sie mithilfe von Object.defineProperty in Getter/Setter. Die Getter/Setter sind für den Benutzer nicht sichtbar, aber intern erm?glichen sie Vue, Abh?ngigkeiten zu verfolgen und ?nderungen zu benachrichtigen, wenn auf Eigenschaften zugegriffen und diese ge?ndert werden.
Beobachterdaten-Listener, der alle Eigenschaften des Datenobjekts überwachen kann, den neuesten Wert abrufen und Abonnenten benachrichtigen kann Object.defineProperty intern. und Setter zum Implementieren des
Compile-Anweisungsparsers. Seine Funktion besteht darin, die Anweisungen jedes Elementknotens zu scannen und zu analysieren, die Daten gem?? der Anweisungsvorlage zu ersetzen und die entsprechende Aktualisierungsfunktion zu binden ??>
Watcher-Abonnent kann als Brücke, die Observer und Compile verbindet, Benachrichtigungen über jede Attribut?nderung abonnieren und empfangen und die entsprechende Rückruffunktion ausführen, die an die Anweisung Dep-Nachrichtenabonnent gebunden ist, die ein Array verwaltet Intern l?sen Daten?nderungen für Collect-Abonnenten (Watcher) die Benachrichtigungsfunktion aus und rufen dann die Aktualisierungsmethode des Abonnenten auf. Wenn new Vue() ausgeführt wird, tritt Vue einerseits in die Initialisierungsphase ein Durchl?uft die Datenoptionen und konvertiert sie mithilfe von Object.defineProperty in Getter/Setter, um Funktionen zur überwachung von Daten?nderungen zu implementieren Abonniert Watcher, um die Ansicht zu aktualisieren. Zu diesem Zeitpunkt fügt sich Wather zum Nachrichtenabonnenten (dep) hinzu und die Initialisierung ist abgeschlossen. Wenn sich die Daten ?ndern, wird die Setter-Methode im Observer ausgel?st. Der Setter beginnt sofort mit dem Durchlaufen aller Abonnenten und ruft die Update-Methode des Abonnenten auf Wenn Sie eine Benachrichtigung erhalten, wird die Ansicht entsprechend aktualisiert und eine Datenbindung wird abgeschlossen.
Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Mit der rasanten Entwicklung von Webanwendungen richten immer mehr Entwickler ihre Aufmerksamkeit auf verschiedene neue Webentwicklungs-Frameworks und architektonische Entwurfsmuster. Eines der bekanntesten Entwurfsmuster ist das MVVM-Architekturmuster (ModelViewViewModel). MVVM übernimmt ein modernes Designmuster, das es Entwicklern erm?glicht, Anwendungen durch die Trennung von Benutzeroberfl?che und Gesch?ftslogik besser zu verwalten und zu warten. Darüber hinaus reduziert MVVM unn?tige Kopplungen und verbessert die Wiederverwendbarkeit und Flexibilit?t des Codes.

Ace ist ein in JavaScript geschriebener einbettbarer Code-Editor. Es entspricht der Funktionalit?t und Leistung nativer Editoren wie Sublime, Vim und TextMate. Es kann problemlos in jede Webseite und JavaScript-Anwendung eingebettet werden. Ace wird als Haupteditor für die Cloud9-IDE gepflegt und ist der Nachfolger des Mozilla Skywriter (Bespin)-Projekts.

Seit der Ver?ffentlichung von Vue3 ist die Wortkompositions-API in das Blickfeld der Vue-Schreibenden gerückt. Ich glaube, jeder hat aufgrund der Ver?ffentlichung von @ immer geh?rt, wie viel besser die Kompositions-API ist als die vorherige Options-API. vue/composition-api-Plug-in, Vue2-Studenten k?nnen ebenfalls in den Bus einsteigen. Als N?chstes werden wir haupts?chlich Responsive Ref und Reactive verwenden, um eine eingehende Analyse durchzuführen, wie dieses Plug-In dies erreicht.

Als wir Amap verwendeten, empfahl uns der Beamte viele F?lle und Demos, aber diese F?lle verwendeten alle native Methoden für den Zugriff und stellten keine Demos von Vue oder React bereit. In diesem Artikel haben jedoch viele Leute über den Vue2-Zugriff geschrieben , wir werden einen Blick darauf werfen, wie vue3 die h?ufig verwendete Amap-API verwendet. Ich hoffe, es wird für alle hilfreich sein!

Vue.js ist heute ein sehr beliebtes Framework in der Front-End-Entwicklung. Da sich Vue.js st?ndig weiterentwickelt, werden Unit-Tests immer wichtiger. Heute untersuchen wir, wie man Unit-Tests in Vue.js 3 schreibt, und stellen einige Best Practices sowie h?ufige Probleme und L?sungen vor.

Im eigentlichen Entwicklungsprojektprozess ist es manchmal erforderlich, relativ gro?e Dateien hochzuladen, und dann ist der Upload relativ langsam, sodass das Front-End m?glicherweise das Hochladen von Dateiabschnitten erfordert. Dies ist beispielsweise sehr einfach Der Gigabyte-Dateistrom wird in mehrere kleine Dateistr?me aufgeteilt, und dann wird die Schnittstelle aufgefordert, die jeweiligen kleinen Dateistr?me zu liefern.

Als ich an der Chatgpt-Mirror-Site arbeitete, stellte ich fest, dass einige Mirror-Sites keine Schreibmaschinen-Cursor-Effekte hatten, sondern nur Textausgabe. Wollten sie das nicht? Ich m?chte es trotzdem tun. Also habe ich es sorgf?ltig studiert und die Wirkung von Schreibmaschine plus Cursor erkannt. Jetzt werde ich meine L?sung und Renderings teilen

In Vue.js k?nnen Entwickler zwei verschiedene Syntaxen zum Erstellen von Benutzeroberfl?chen verwenden: JSX-Syntax und Vorlagensyntax. Beide Syntaxen haben ihre eigenen Vor- und Nachteile. Lassen Sie uns ihre Unterschiede, Vor- und Nachteile besprechen.
