1. Übergeordnete Komponenten und untergeordnete KomponentenWir können oft nicht sagen, was eine übergeordnete und was eine untergeordnete Komponente ist. Fassen wir es nun kurz zusammen: Wir kapseln einen Codeabschnitt in eine Komponente ein, und diese Komponente wird in eine andere Komponente eingeführt. Die Datei, die die gekapselte Komponente einführt, wird als übergeordnete Komponente bezeichnet, und die eingeführte Komponente wird als untergeordnete Komponente bezeichnet. Der spezifische Code lautet wie folgt: <div id="app"> <Komponente2></Komponente2> </div> <Skript> // Globale Registrierung Vue.component("component1", { Vorlage: ` <div> <h2>Hallo</h2> </div> ` }) const app = new Vue({ el: "#app", Daten: { Nachricht: "Hallo" }, Komponenten: // Lokale Registrierung "component2": { Vorlage: ` <div> <Komponente1></Komponente1> <h2>Welt</h2> </div> `, } } }) </Skript>
Schließlich verwenden wir Komponente Der Vorlagencode lautet: <div> <Komponente-1></Komponente-1> <h2>Welt</h2> </div> Da Komponente <div> <div> <h2>Hallo</h2> </div> <h2>Welt</h2> </div> Die im Browser sichtbaren Auswirkungen sollten also sein:
Ergebnis: 2. Vorlage Trennung Schreiben Als wir die Komponente oben erstellt haben, haben wir die 1. Vorlagen-Tag Wir extrahieren die ursprünglich in der Komponente geschriebene <Vorlagen-ID="Komponente2"> <div> <Komponente1></Komponente1> <h2>Welt</h2> </div> </Vorlage> Ersetzen Sie dann in der Komponente den Inhalt des ursprünglichen Komponenten: // Lokale Registrierung "component2": { Vorlage: `#Komponente2`, } } Empfehlen Sie diese Schreibmethode 2. Text/X-Vorlage Wir haben eine andere Schreibweise, die der obigen ähnlich ist. Wir haben oben das wie folgt: <script Typ="text/x-template" id="Komponente2"> <div> <Komponente1></Komponente1> <h2>Welt</h2> </div> </Skript> 3. Kommunikation zwischen Eltern- und Kindkomponenten - Eltern-Kind Wenn wir eine übergeordnete Komponente und eine untergeordnete Komponente erstellen und die untergeordnete Komponente auch dieselben Daten der übergeordneten Komponente abrufen möchte, besteht eine Möglichkeit darin, die Schnittstelle zum Abrufen der Daten in den Hintergrund zu senden. Dies belastet jedoch den Server. Daher haben wir eine zweite Methode, bei der die Daten der übergeordneten Komponente über <div id="app"> <test1 :cmovies="Filme"></test1> </div> <Vorlagen-ID="test1"> <div> <ul> <li v-for="Artikel in cmovies">{{Artikel}}</li> </ul> </div> </Vorlage> <Skript> const app = new Vue({ el: "#app", Daten: { Filme: ["One Piece", "Haier Brothers", "Sea King"] }, Komponenten: "test1": { Vorlage: `#test1`, Requisiten: ['cmovies'], Daten(){ zurückkehren{} }, } } }) </Skript> Hier definieren wir Schließlich können die Filme in Filmen auf der Webseite angezeigt werden. In der ungeordneten Liste auf der obigen Seite verwenden wir untergeordnete Komponenten. Die Daten werden von der übergeordneten 1. Prop-Typ Im obigen Beispiel definieren wir
Beispiel: // Einfache Syntax Vue.component('props-demo-simple', { Requisiten: ['Größe', 'meineNachricht'] }) // Objektsyntax, die Validierung bereitstellt Vue.component('props-demo-advanced', { Requisiten: { // Erkennungstyp Höhe: Zahl, // Erkennungstyp + anderes Überprüfungsalter: { Typ: Nummer, Standard: 0, erforderlich: wahr, Validator: Funktion (Wert) { Rückgabewert >= 0 } } } }) Hinweis: Wenn wir 4. Kommunikation zwischen Eltern- und Kindkomponenten Im Child-to-Parent-Szenario übergibt die Child-Komponente das Ereignis normalerweise an die Parent-Komponente, damit diese darauf lauscht und der Parent-Komponente mitteilt, auf welche Schaltfläche der Benutzer geklickt hat. Die verwendete Funktion ist $emit. 1. vm.$emit( eventName, […args] )Parameter:
Löst ein Ereignis auf der aktuellen Instanz aus. Alle zusätzlichen Parameter werden an den Listener-Callback übergeben. Beispiel: <div id="app"> <test1 @item-click="cpnClick"></test1> </div> <Vorlagen-ID="test1"> <div> <button v-for="Artikel in Kategorien" @click="btnClick(Artikel)">{{Artikel.name}}</button> </div> </Vorlage> <Skript> const app = new Vue({ el: "#app", Daten: { Nachricht: "Hallo" }, Methoden: { cpnClick(Artikel){ console.log("Erfolg", Element) } }, Komponenten: // Lokale Registrierungskomponente test1 "test1": { Daten(){ zurückkehren { Kategorien: [ {id: "aaa", name: "Heiße Empfehlung"}, {id: "bbb", name: "Mobile Digital"}, {id: "ccc", name: "Haushaltsgeräte"}, {id: "ddd", name: "Lebensmittel und Getränke"}, ] } }, Methoden: { btnClick(Artikel){ dies.$emit("Artikel-Klick", Artikel) } }, Vorlage: `#test1` } } }) </Skript> Der obige Code definiert Wir können sehen, dass die von der Konsole gedruckten Protokolle die 5. Kommunikation zwischen Eltern- und Kindkomponenten - kombiniert mit bidirektionaler Bindung Das folgende Beispiel kombiniert Parent-to-Child und Child-to-Parent sowie 1. Grundlegender Vorlagencode<div id="app"> <cpn :Nummer1="Anzahl1" :Nummer2="Anzahl2"></cpn> </div> <Vorlagen-ID="cpn"> <div> <h2>{{Nummer1}}</h2> <h2>{{Nummer2}}</h2> </div> </Vorlage> <Skript> const app = new Vue({ el: "#app", Daten: { Zahl1: 0, Zahl2: 1, }, Komponenten: // Unterkomponente cpn definieren "cpn": { Vorlage: `#cpn`, Requisiten: { Nummer1: Nummer, Nummer2: Nummer, } } }, }) </Skript> Der Code macht Folgendes
Der endgültige Seitenanzeigeeffekt ist:
2. Bidirektionale Bindung hinzufügen Basierend auf der obigen Vorlage fügen wir eine bidirektionale Bindung hinzu, fügen <Vorlagen-ID="cpn"> <div> <h2>Requisiten:{{number1}}</h2> <Eingabetyp="Text" v-Modell="Nummer1"> <h2>Requisiten:{{number2}}</h2> <Eingabetyp="Text" v-Modell="Nummer2"> </div> </Vorlage> Der obige Code vervollständigt die bidirektionale Bindung, es wird jedoch eine Fehlerwarnung angezeigt Wenn wir bidirektionale Bindung mit <Vorlagen-ID="cpn"> <div> <h2>Daten:{{dnumber1}}</h2> <Eingabetyp="Text" v-Modell="dnumber1"> <h2>Daten:{{dnumber2}}</h2> <Eingabetyp="Text" v-Modell="dnumber2"> </div> </Vorlage> Daten(){ zurückkehren { dnumber1: diese.number1, dnumber2: diese.number2, } }, Beim Binden an 3. Umgekehrte Bindung Wenn wir der obigen Idee folgen, hoffen wir, dass sich beim Ändern Hier ist der vollständige Code: <div id="app"> <cpn :Nummer1="Anzahl1" :Nummer2="Anzahl2" @Anzahl1Änderung="Anzahl1Änderung" @Anzahl2Änderung="Anzahl2Änderung"></cpn> </div> <Vorlagen-ID="cpn"> <div> <h2>Requisiten:{{number1}}</h2> <h2>Daten:{{dnumber1}}</h2> <Bezeichnung> <Eingabetyp="Text" :Wert="dNummer1" @Eingabe="Nummer1Eingabe"> </Bezeichnung> <h2>Requisiten:{{number2}}</h2> <h2>Daten:{{dnumber2}}</h2> <Bezeichnung> <Eingabetyp="Text" :Wert="dNummer2" @Eingabe="Nummer2Eingabe"> </Bezeichnung> </div> </Vorlage> <Skript> const app = new Vue({ el: "#app", Daten: { Zahl1: 0, Zahl2: 1, }, Methoden: { num1change(Wert){ this.num1 = parseInt(Wert) }, num2change(Wert){ this.num2 = parseInt(Wert) }, }, Komponenten: // Unterkomponente cpn definieren "cpn": { Vorlage: `#cpn`, Requisiten: { Nummer1: Nummer, Nummer2: Nummer, }, Daten(){ zurückkehren { dnumber1: diese.number1, dnumber2: diese.number2, } }, Methoden: { num1Input(Ereignis){ // 1. Weisen Sie den Wert in der Eingabe dnumber zu this.dnumber1 = event.target.value // 2. Damit die übergeordnete Komponente den Wert ändern kann, muss ein Ereignis ausgegeben werden: this.$emit("num1change", this.dnumber1) }, num2Input(Ereignis){ // 1. Weisen Sie den Wert in der Eingabe dnumber zu this.dnumber2 = event.target.value // 2. Damit die übergeordnete Komponente den Wert ändern kann, muss ein Ereignis ausgegeben werden: this.$emit("num2change", this.dnumber2) } } } }, }) </Skript> Die Wirkung ist wie folgt: 6. Komponentenzugriff übergeordneter Zugriff untergeordneter Zugriff Wenn wir die Funktion oder den Attributwert der untergeordneten Komponente in der übergeordneten Komponente verwenden müssen, können wir <div id="app"> <cpn ref="aaa"></cpn> <button @click="btnClick">Schaltfläche</button> </div> <Vorlagen-ID="cpn"> <div> Ich bin eine untergeordnete Komponente</div> </Vorlage> <script src="../js/vue.js"></script> <Skript> const app = new Vue({ el: "#app", Daten: { Nachricht: "Hallo" }, Methoden: { btnClick(){ Konsole.log(dies.$refs.aaa.name) dies.$refs.aaa.showMessage() } }, Komponenten: "cpn": { Vorlage: `#cpn`, Daten(){ zurückkehren { Name: „Ich bin der Name der Unterkomponente“ } }, Methoden: { Nachricht anzeigen(){ console.log("Nachricht anzeigen") } } } } }) </Skript> Der obige Code bewirkt Folgendes:
Damit ist dieser Artikel zur detaillierten Analyse von Vue-Unterkomponenten und übergeordneten Komponenten abgeschlossen. Weitere relevante Vue-Unterkomponenten und übergeordnete 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:
|
<<: Verwendung und Verständnis von MySQL-Triggern
>>: W3C Tutorial (14): W3C RDF und OWL Aktivitäten
Vorwort: position:sticky ist ein neues Attribut d...
Quellcode herunterladen Git-Klon https://github.c...
Inhaltsverzeichnis 1. Einleitung 2. Nutzung 3. En...
Es ist sehr einfach, Daten und Tabellen in MySQL ...
In diesem Artikelbeispiel wird der spezifische Co...
app.js: Startdatei oder Einstiegsdatei package.js...
CSS-Operationen CSS $("").css(name|pro|...
Zusammenfassung: Viele Unternehmen, sogar die meis...
Es gibt kein Problem mit der Dockerfile-Konfigura...
Code kopieren Der Code lautet wie folgt: <vor&...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Schritte zum Erstellen von TCP...
1. Was ist Refs wird in Computern als Resilient F...
1: Ich werde nicht näher auf die Installation von...
Inhaltsverzeichnis UI-Design Echarts Beispieleffe...