So wenden Sie TypeScript-Klassen in Vue-Projekten an

So wenden Sie TypeScript-Klassen in Vue-Projekten an

1. Einleitung

TypeScript basiert auf der Bibliothek vue-class-component , einer offiziellen von Vue gestarteten Bibliothek, die die Verwendung von class zur Entwicklung vue -Einzeldateikomponenten unterstützt.

Die Hauptfunktionen sind wie folgt:

  • methods können direkt als Membermethoden einer Klasse deklariert werden
  • Berechnete Eigenschaften können als Eigenschaftszugriffsmethoden einer Klasse deklariert werden.
  • Initialisierte data können als Klassenattribute deklariert werden
  • data , render und alle Vue-Lifecycle-Hooks können direkt als Klassenmitgliedsmethoden verwendet werden.
  • Alle anderen Eigenschaften müssen im Dekorator platziert werden

2. Verwendung

vue-property-decorator stellt hauptsächlich die folgenden Dekoratoren bereit

  • @Stütze
  • @PropSync
  • @Modell
  • @Betrachten
  • @Bieten
  • @Injizieren
  • @ProvideReactive
  • @InjectReactive
  • @Emittieren
  • @Referenz
  • @Component (bereitgestellt von vue-class-component)
  • Mixins (bereitgestellt von Vue-Class-Component)

1. @Komponente

Component Es kennzeichnet diese Klasse als Vue-Komponente, sodass sie nicht weggelassen werden kann, auch wenn keine Optionen festgelegt sind

Wenn Sie name , components , filters , directives und benutzerdefinierte Eigenschaften definieren müssen, können Sie diese im Component Dekorator wie folgt definieren:

importiere {Component,Vue} aus „vue-property-decorator“; 
importiere {KomponenteA,KomponenteB} aus '@/Komponenten'; 
 
 @Komponente({ 
    Komponenten: { 
        KomponenteA, 
        Komponente B, 
    }, 
    Anweisungen: { 
        Fokus: 
            // Definition der Anweisung eingefügt: function (el) { 
                el.fokus() 
            } 
        } 
    } 
}) 
exportiere Standardklasse YourComponent erweitert Vue{ 
    
} 


2. Berechnet, Daten, Methoden

Dabei entfallen data und methods der Komponente. Bisher mussten die Attribute im Datenrückgabeobjekt und die Methoden in methods direkt in der Klasse als Attribute und Methoden der Klasse definiert werden.

@Komponente 
exportiere Standardklasse HelloDecorator erweitert Vue { 
    count: number = 123 // Das Klassenattribut entspricht den vorherigen Daten 
 
    add(): number { // Die Klassenmethode ist die gleiche wie die vorherige Methode this.count + 1 
    } 
 
    // Das berechnete Attribut abrufen get total(): number { 
      gib dies zurück.Anzahl + 1 
    } 
 
    // Die berechneten Eigenschaften festlegen set total(param:number): void { 
      this.count = Parameter 
    } 
} 

3. @Requisiten

Die Komponente erhält den Dekorator des Attributs, der wie folgt verwendet wird:

importiere {Component,Vue,Prop} vom Vue-Eigenschaftsdekorator; 
 
@Komponente 
exportiere Standardklasse YourComponent erweitert Vue { 
    @Prop(Zeichenfolge) 
    propA: Zeichenfolge; 
     
    @Prop([Zeichenfolge,Zahl]) 
    propB:Zeichenfolge|Zahl; 
     
    @Stütze({ 
     Typ: String, // Typ: [String, Zahl] 
     Standard: „Standardwert“, // normalerweise eine Zeichenfolge oder Zahl 
      //Wenn es ein Objekt oder ein Array ist. Der Standardwert wird von einer Factory-Funktion zurückgegeben // default: () => { 
      // returniere ['a','b'] 
      // } 
     erforderlich: wahr, 
     validator: (Wert) => { 
        zurückkehren [ 
          'In Bearbeitung', 
          "Erledigt" 
        ].indexOf(Wert) !== -1 
     } 
    }) 
    propC: Zeichenfolge; 
} 


4. @watch

Es handelt sich eigentlich um den Listener in Vue, und zwar wie folgt:

importiere { Vue, Komponente, Watch } von 'vue-property-decorator' 
 
@Komponente 
exportiere Standardklasse YourComponent erweitert Vue { 
  @Watch('Kind') 
  beiKindGeändert(Wert: Zeichenfolge, alterWert: Zeichenfolge) {} 
 
  @Watch('Person', { unmittelbar: wahr, tief: wahr }) 
  beiPersonGeändert1(Wert: Person, alterWert: Person) {} 
 
  @Watch('Person') 
  beiPersonGeändert2(Wert: Person, alterWert: Person) {} 
} 


5. @emit

Der von vue-property-decorator bereitgestellte @Emit -Dekorator ersetzt $emit Trigger von Ereignissen in Vue wie folgt:

importiere {Vue, Komponente, Emit} von „vue-property-decorator“; 
    @Komponente({}) 
    exportiere Standardklasse Einige erweitert Vue{ 
        montiert(){ 
            dies.$on('emit-todo', Funktion(n) { 
                console.log(n) 
            }) 
            dies.emitTodo('Welt'); 
        } 
        @Emittieren() 
        emitTodo(n: Zeichenfolge){ 
            console.log('hallo'); 
        } 
    } 

Abschluss

Sie können sehen, dass sich die Syntax der obigen typescript Version der vue class stark von der der üblichen javascript Version unterscheidet. Klassen und Dekoratoren werden an vielen Stellen verwendet, aber tatsächlich ist das Wesentliche dasselbe. Nur durch ständiges Schreiben können Sie darin kompetent werden.

Dies ist das Ende dieses Artikels zur Anwendung TypeScript in Vue-Projekten. Weitere Informationen zur Anwendung von TypeScript in Vue -Projekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • TypeScript-Aufzählungstyp
  • Einführung in die grundlegenden TypeScript-Typen
  • TypeScript-Aufzählungstypen im Detail erklären
  • Detaillierte Erklärung des Typschutzes in TypeScript
  • Eine kurze Diskussion über den Typschutzmechanismus von TypeScript
  • Klassen in TypeScript

<<:  Verwendung des Linux-Befehls passwd

>>:  Detaillierte Analyse der MySQL Master-Slave-Replikation

Artikel empfehlen

Ubuntu kompiliert Kernelmodule und der Inhalt wird im Systemprotokoll angezeigt

Inhaltsverzeichnis 1.Linux-Anmeldeschnittstelle 2...

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...

Wie erreicht MySQL die Parallelität mehrerer Versionen?

Inhaltsverzeichnis MySQL-Mehrversionen-Parallelit...

Von CSS 3D zur räumlichen Koordinatenachse mit Quellcode

Einmal haben wir über das Würfelspiel gesprochen....

So lösen Sie das Problem verschwommener kleiner Symbole auf Mobilgeräten

Vorwort Zuvor habe ich über das Problem der verti...

Detailliertes Tutorial zur VMware-Installation des Linux CentOS 7.7-Systems

So installieren Sie das Linux CentOS 7.7-System i...

JavaScript implementiert eine Seiten-Scrolling-Animation

Inhaltsverzeichnis Erstellen eines Layouts CSS-St...

Eine kurze Erläuterung der Syntax der VUE-Uni-App-Vorlage

1.v-bind (Abkürzung:) Um in Daten definierte Date...

Super detaillierte grundlegende JavaScript-Syntaxregeln

Inhaltsverzeichnis 01 JavaScript (abgekürzt: js) ...

Erläuterung der Truncate Table-Verwendung

TRUNCATE-TABELLE Löscht alle Zeilen in einer Tabe...

Docker-Bindung mit fester IP/Hostübergreifender Container-Gegenzugriffsvorgang

Vorwort Bisher waren statische IPs, die über Pipe...