Erfahren Sie, wie Sie in Vue 3 von der Options-API zur Composition-API migrieren.

Da die Macher von Vue angekündigt haben, dass Vue 2 bis zum 31. Dezember 2023 das Ende seiner Lebensdauer erreichen wird, werden Entwickler aufgefordert, auf Vue 3 umzusteigen.

Mit diesem Übergang geht die Composition API einher, eine Funktion, die einen modulareren, deklarativeren und typsichereren Ansatz zum Erstellen von Vue-Anwendungen bietet.

Was ist die Kompositions-API?

Die Composition API stellt einen Paradigmenwechsel beim Schreiben von Vue-Komponenten dar das Optionsobjekt. Dieser Entwicklungsstil verfolgt einen eher deklarativen Ansatz, sodass Sie sich auf die Erstellung Ihrer Vue-App konzentrieren und gleichzeitig die Implementierungsdetails abstrahieren können.

Motivation für die Composition API

Die Entwickler von Vue erkannten die Herausforderungen beim Erstellen komplexer Webanwendungen mit dem Optionsobjekt. Als die Projekte wuchsen, wurde die Verwaltung der Komponentenlogik weniger skalierbar und schwieriger zu warten, insbesondere in kollaborativen Umgebungen.

instagram viewer

Der herkömmliche Optionsobjektansatz führte oft zu vielen Komponenteneigenschaften, was das Verständnis und die Wartung des Codes erschwerte.

Darüber hinaus wurde die Wiederverwendung der Komponentenlogik über verschiedene Komponenten hinweg umständlich. Die verstreute Logik innerhalb verschiedener Lebenszyklus-Hooks und -Methoden erhöhte auch die Komplexität beim Verständnis des Gesamtverhaltens einer Komponente.

Vorteile der Composition API

Die Composition API bietet gegenüber der Options API mehrere Vorteile.

1. Verbesserte Leistung

Vue 3 führt einen neuen Rendering-Mechanismus ein, der als Proxy-basiertes Reaktivitätssystem bezeichnet wird. Dieses System bietet eine bessere Leistung, indem es den Speicherverbrauch reduziert und die Reaktivität verbessert. Das neue Reaktivitätssystem ermöglicht es Vue 3, größere Komponentenbäume effizienter zu verarbeiten.

2. Kleinere Bündelgröße

Dank der optimierten Codebasis und Tree-Shaking-Unterstützung hat Vue 3 eine kleinere Bundle-Größe als Vue 2. Diese Reduzierung der Paketgröße führt zu schnelleren Ladezeiten und einer verbesserten Leistung.

3. Verbesserte Code-Organisation

Durch die Nutzung der Composition API können Sie den Code Ihrer Komponente in kleinere, wiederverwendbare Funktionen organisieren. Dies fördert ein besseres Verständnis und eine bessere Wartung, insbesondere bei großen und komplexen Bauteilen.

4. Wiederverwendbarkeit von Komponenten und Funktionen

Kompositionsfunktionen können problemlos über verschiedene Komponenten hinweg wiederverwendet werden, was die gemeinsame Nutzung von Code und die Erstellung einer Bibliothek wiederverwendbarer Funktionen erleichtert.

5. Bessere TypeScript-Unterstützung

Die Composition API bietet eine umfassendere TypeScript-Unterstützung, die eine genauere Typinferenz und eine einfachere Identifizierung typbezogener Fehler während der Entwicklung ermöglicht.

Vergleich zwischen Optionsobjekt und der Kompositions-API

Nachdem Sie nun die Theorie hinter der Composition API verstanden haben, können Sie mit der praktischen Anwendung beginnen. Um die Vorteile der Composition API zu verstehen, vergleichen wir einige Schlüsselaspekte beider Ansätze.

Reaktive Daten in Vue 3

Reaktive Daten sind ein grundlegendes Konzept in Vue, das es ermöglicht, dass Datenänderungen in Ihrer Anwendung automatisch Aktualisierungen in der Benutzeroberfläche auslösen.

Vue 2 basierte sein reaktives System auf dem Object.defineProperty Methode und stützte sich auf ein Datenobjekt, das alle reaktiven Eigenschaften enthielt.

Wenn Sie eine Dateneigenschaft mit der Datenoption in einer Vue-Komponente definiert haben, hat Vue jede Eigenschaft im Datenobjekt automatisch mit Gettern und Settern umschlossen, einer neuen Funktion von ECMA Script (ES6).

Diese Getter und Setter verfolgten Abhängigkeiten zwischen Eigenschaften und aktualisierten die Benutzeroberfläche, wenn Sie eine Eigenschaft änderten.

Hier ist ein Beispiel dafür, wie Sie in Vue 2 mit dem Optionsobjekt reaktive Daten erstellen: