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

Detaillierte Erklärung der MySQL 30-Militärregeln

1. Grundlegende Spezifikationen (1) Es muss die I...

Implementierung des Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

Beispiel für die Anpassung des Vue-Projekts an den großen Bildschirm

Eine kurze Analyse von rem Zunächst einmal ist re...

Lernen Sie einfach verschiedene SQL-Joins

Mit der SQL JOIN-Klausel können Zeilen aus zwei o...

Eine ausführliche Diskussion zur Detailanalyse im Webdesign

Bei der Designarbeit höre ich oft, dass an der Übe...

mysql-8.0.16 winx64 neuestes Installationstutorial mit Bildern und Text

Ich habe erst vor Kurzem angefangen, mich mit Dat...

Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

Inhaltsverzeichnis Indexmodell B+Baum Indexauswah...

Eine kurze Analyse von Linux resolv.conf

1. Einleitung resolv.conf ist die Konfigurationsd...