Eine kurze Analyse zum Verständnis von Vue-Komponenten aus einer objektorientierten Perspektive

Eine kurze Analyse zum Verständnis von Vue-Komponenten aus einer objektorientierten Perspektive

Wenn dieselbe Funktion und derselbe HTML-Code mehrmals verwendet werden, können Sie erwägen, sie in Komponenten zu extrahieren. Der Vorteil von Komponenten besteht darin, dass Sie sie aufrufen können, wenn Sie sie verwenden möchten, und Parameter übergeben können, wenn Sie sie ändern möchten.

Was sind Komponenten

Wenn Sie Vue-Komponenten durch objektorientiertes Denken verstehen, können Sie alle Dinge in Objekte abstrahieren und Klassen oder Komponenten haben Eigenschaften und Operationen.

Wenn wir beispielsweise Menschen als Komponenten extrahieren, umfassen ihre grundlegenden Attribute Name, Alter und Nationalität; ihre grundlegenden Methoden umfassen Essen, Schlafen, Laufen usw.

<Skript>
Standard exportieren {
    Name: "Person",
    Requisiten: {
        Name: {
            Typ: Zeichenfolge,
            erforderlich: false,
            Standard: „Anonym“
        },
        Alter: {
            Typ: Nummer,
            erforderlich: false,
            Standard: 0
        },
        Land:
            Typ: Zeichenfolge,
            erforderlich: false,
            Standard: „Erdlinge“
        }
    },
    Methoden: {
        essen() {
            consloe.log('Essen')
        },
        schlafen() {
            consloe.log('Schlaf')
        },
        laufen() {
            consloe.log('läuft')
        }
    }
}
</Skript>

In der objektorientierten Programmierung können Konstruktoren globale Variablen für Klassen initialisieren, sodass dieser Ansatz auch in Komponenten verwendet werden kann.

<Person: Alter = "20": Name = "'Xiao Ming'": Land = "'Chinesisch'"></Person>

Komponenten kapseln Daten und Operationen. Was hineingeht, muss auch wieder hinaus . Was innerhalb der Komponente passiert, muss uns nicht interessieren. Wir brauchen nur die Ergebnisse und die dargestellten Effekte.

Benutzerdefinierte Ereignisse

Was soll ich tun, wenn die Außenwelt nicht direkt auf die Eigenschaften einer Komponente zugreifen kann?

Mithilfe von benutzerdefinierten $emit-Ereignissen können Sie Komponenteneigenschaften aus der Außenwelt abrufen.

<Vorlage>
    ...
    <button @click="handleClick">Klick</button>
</Vorlage>

<Skript>
Standard exportieren {
    Name: "Person",
    Methoden: {
        handleKlick() {
            dies.$emit('getPerson', {
                Alter: dieses.Alter,
                Name: dieser.Name,
                Land: dieses.Land
            })
        }
    }
}
</Skript>

Wenn die externe Komponente aufgerufen wird, fügen Sie eine benutzerdefinierte Funktion @getPerson oder v-on:click="getPerson" hinzu.

<Vorlage>
    <div>
        <Person :Alter="20" :Name="'Xiao Ming'" :Land="'Chinesisch'" @getPerson="getPerson"></Person>
    </div>
</Vorlage>

<Skript>
Standard exportieren {
    Name: "Test",
    Methoden: {
        getPerson(info) {
            consloe.log(Informationen)
        }
    }
}
</Skript>

Aktuelle Fälle

Bei der Webentwicklung verwenden Sie möglicherweise Tags und denken dabei möglicherweise, dass Tags auf einer Seite nicht nur einmal, sondern mehrmals verwendet werden können. Möglicherweise möchten Sie auch einige Breiten, Höhen und Farben für unterschiedliche Situationen anpassen.

Daher können wir den mit dem Tag verbundenen HTML-Code und CSS in die Komponente einkapseln und die Parameter Breite, Höhe und Typ der Außenwelt zugänglich machen. Wenn Sie es bei der Verwendung aufgrund unterschiedlicher Situationen anpassen müssen, übergeben Sie einfach die Parameter.

<Vorlage>
    <Ansicht
        :style="{ Breite: Breite, Höhe: Höhe }"
        :Klasse="['owl-tag-' + Typ]"
        Klasse = "Owl-Tag, Text-XS, Flex, Ausrichtung zentriert, Rechtfertigung zentriert"
    >
        <Steckplatz></Steckplatz>
    </Ansicht>
</Vorlage>

<Skript>
    Name: 'Eulen-Tag',
    Requisiten: {
        // Der gültige Wert, der übergeben werden kann, ist primary | gray
        Typ: {
            Typ: Zeichenfolge,
            Standard: „primär“
        },
        Breite: {
            Typ: Zeichenfolge,
            erforderlich: false
        },
        Höhe:
            Typ: Zeichenfolge,
            erforderlich: false
        }
    }
</Skript>

<Stil>
.owl-tag {
    Rahmenradius: 8rpx;
    Polsterung: 6rpx 10rpx;
}

.owl-tag-primary {
    Farbe: weiß;
    Hintergrundfarbe: #87cefa;
}

.owl-tag-gray {
    Farbe: #81868a;
    Hintergrundfarbe: #f0f1f5;
}
</Stil>

Sobald diese Aufgaben abgeschlossen sind, wurde eine Komponente definiert. Sie können es aufrufen, wenn Sie es verwenden möchten, und Parameter übergeben, wenn Sie es ändern möchten. Das ist der Vorteil von Komponenten.

<Vorlage>
    <Eulen-Tag
        :Typ="'primär'"
        :Höhe="'45rpx'"
        :Breite="'120rpx'"
    >
        Offizieller Beitrag</owl-tag>
</Vorlage> 

Wenn Sie den Wert von type auf gray ändern, hat das folgende Auswirkungen:

Damit ist dieser Artikel zum Verständnis von Vue-Komponenten aus der Perspektive des objektorientierten Denkens abgeschlossen. Weitere relevante Inhalte zu objektorientierten Vue-Komponenten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue implementiert die Countdown-Komponente für zweite Kills
  • Vue.js-Textfeld mit Dropdown-Komponente
  • Vue verwendet Split, um die universelle Drag-and-Slide-Partitionspanel-Komponente zu kapseln
  • vite2.x implementiert das On-Demand-Laden von Ant-Design-Vue@next-Komponenten
  • Schritte zum Kapseln der Karussellkomponente in vue3.0
  • Detaillierte Erklärung zur Verwendung der ziehbaren Textfeldkomponente von Vue.js

<<:  So installieren und konfigurieren Sie WSL unter Windows

>>:  Bestimmte Vorgänge der geplanten MySQL-Löschung von Sicherungsdaten

Artikel empfehlen

mysql 8.0.18 mgr-Installation und seine Umschaltfunktion

1. Systeminstallationspaket yum -y install make g...

Ursachen und Lösungen für MySQL-Deadlocks

Die Datenbank ist wie das Betriebssystem eine gem...

Beispielcode einer in Vue3 gekapselten Lupenkomponente

Inhaltsverzeichnis Komponenteninfrastruktur Zweck...

Was wir von Googles neuer Benutzeroberfläche (Bilder und Text) lernen können

Die bedeutendste Website-Änderung im Jahr 2011 bet...

So betreten und verlassen Sie den Docker-Container

1 Starten Sie den Docker-Dienst Zuerst müssen Sie...

Vue+js realisiert Video-Ein- und Ausblendeffekte

Vue+js realisiert das Ein- und Ausblenden des Vid...

Zwei Arten von Tab-Anwendungen im Webdesign

Heutzutage werden Registerkarten häufig im Webdes...

Lösungen für MySQL OOM (Speicherüberlauf)

OOM steht für „Out Of Memory“, was so viel bedeut...

Grafisches Tutorial zur Installation und Konfiguration der MySQL-Version 5.7.15

Dieser Artikel enthält ein ausführliches Tutorial...