Webinterview: Der Unterschied zwischen MVC und MVVM und warum Vue nicht vollständig mit MVVM kompatibel ist

Webinterview: Der Unterschied zwischen MVC und MVVM und warum Vue nicht vollständig mit MVVM kompatibel ist

Unterschied zwischen MVC und MVVM

vorgenannt

Zunächst einmal sind diese beiden nur ein Gedanke, ein Designmuster

Viele Programmiersprachen haben viele Frameworks basierend auf dieser Idee entwickelt, beispielsweise SpringMVC in Java, ThinkPHP in PHP, Vue, React, Angular in JavaScript usw.

MVC

Überblick

1. Daten sollten in der Ansicht gerendert werden
Definieren einer Template-Engine
Abrufen der Daten
Anschließend rendern Sie die Daten in die Template-Engine

2. Aktionscontroller anzeigen
Fügen Sie der Schaltfläche auf der Seite ein Klickereignis hinzu
Aufrufen von Methoden in Ereignissen
Der Controller sendet dann eine Anfrage zur Änderung der Daten

3. Senden Sie Netzwerkanforderungen, um Daten über Methoden zu ändern
Senden Sie dann eine Netzwerkanforderung, um die geänderten Daten abzurufen
Rendern Sie dann die Daten in der Ansicht

Für und Wider

Vorteil:

Reduzieren Sie die Kopplung und erleichtern Sie die Codewartung und -erweiterung

Mangel:

Nach jeder Datenaktualisierung muss DOM bedient werden, was die Entwicklungseffizienz beeinträchtigt.

MVVM

Überblick

Vorwort

Um die Entwicklungseffizienz zu verbessern, entstand eine neue Idee: MVVM. Sein größtes Merkmal: bidirektionale Datenbindung;

Wenn sich die Daten in M ​​ändern, ändern sich die Daten in V automatisch. Wenn sich die Daten in V ändern, ändern sich die Daten in M ​​automatisch.

MVVM ist eine Weiterentwicklung von MVC und ein Ersatz für MVC.

Merkmale:

Wenn sich M ändert, ändert sich V automatisch. Wenn sich V ändert, ändert sich M automatisch.

Beziehung:

Sobald sich M ändert, erkennt VM die Änderung von M und ändert V automatisch

Sobald sich V ändert, erkennt VM die Änderung in V und ändert automatisch M

Mit MVVH werden alle DOM-Operationen von der VM ausgeführt, was die Arbeitsbelastung der Programmierer reduziert. Programmierer können viel Zeit auf die Geschäftslogik statt auf DOM-Operationen verwenden.

MVVM-Implementierer – Vue

Bildbeschreibung hier einfügen

Warum ist Vue nicht vollständig mit MVVM kompatibel?

Bildbeschreibung hier einfügen

Die ursprünglichen Worte stammen aus der Erklärung des Autors auf der offiziellen Vue-Website, aber der Autor hat keinen Grund angegeben. Nach meiner eigenen Recherche und Sortierung denke ich, dass es zwei Gründe gibt

Grund 1: MVVM bezieht sich auf „Model-View-ViewModel“, was „Modell“ und „Ansicht“ vollständig entkoppeln sollte, aber Vue bietet eine Eigenschaft: ref, über die Sie das DOM-Objekt abrufen und die Ansicht direkt bedienen können. Dies verstößt gegen MVVM;

Grund 2: Wie in der folgenden Abbildung gezeigt, ist die „Datenschicht“ strukturell in der „Datenmodellschicht“ enthalten und die beiden Teile sind nicht vollständig unabhängig.

Bildbeschreibung hier einfügen

Oben finden Sie ausführliche Informationen zum Unterschied zwischen MVC und MVVM in Webinterviews und die Antwort darauf, warum Vue nicht vollständig mit MVVM kompatibel ist. Weitere Informationen zu MVC und MVVM finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Hinweise zu Vue.js und MVVM
  • Eine kurze Analyse des MVVM-Implementierungsprinzips in Vue
  • Eine kurze Diskussion über die MVC- und MVVM-Strukturen der JavaScript-Frontend-Entwicklung
  • Erklärung des MVVM-Modus in Vue
  • Detaillierte Erläuterung des MVVM-Prinzips und der Implementierungsmethode in Vue

<<:  So lösen Sie das Problem der langsamen Geschwindigkeit von MySQL wie bei Fuzzy-Abfragen

>>:  Nginx-Anti-Crawler-Strategie, um UA am Crawlen von Websites zu hindern

Artikel empfehlen

So stellen Sie mit Node-Red eine Verbindung zur MySQL-Datenbank her

Um Node-red mit der Datenbank (mysql) zu verbinde...

So fügen Sie einem Benutzer in einer Linux-Umgebung Sudo-Berechtigungen hinzu

sudo-Konfigurationsdatei Die Standardkonfiguratio...

MySQL Installations-Tutorial unter Windows mit Bildern und Text

Anweisungen zur MySQL-Installation MySQL ist ein ...

jQuery implementiert einen einfachen Kommentarbereich

In diesem Artikel wird der spezifische Code von j...

Grafisches Tutorial zur Installation von Linux CentOS6.9 unter VMware

Als technischer Neuling zeichne ich den Vorgang d...

jQuery implementiert einen prozentualen Fortschrittsbalken

In diesem Artikel wird der spezifische Code von j...

Interpretation von syslogd- und syslog.conf-Dateien unter Linux

1: Einführung in syslog.conf Für verschiedene Uni...

Sortierung und Paginierung von MySQL-Abfragen

Überblick Da wir die Daten normalerweise nicht di...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

So ändern Sie die Zeit in der virtuellen CentOS-Maschine

Das obere Bild zeigt die Systemzeit und das unter...

So beenden Sie den MySQL-Prozess ordnungsgemäß und sicher

Vorwort In diesem Artikel wird der Vorgang zum He...

So implementieren Sie eine bidirektionale MySQL-Sicherung

Die bidirektionale MySQL-Sicherung wird auch als ...