1. Vom Vater zum Sohn (1) Binden Sie eine Eigenschaft an das Child-Component-Tag der Parent-Komponente und mounten Sie die zu übertragende Variable. (2) Akzeptieren Sie Daten über Props in der Child-Komponente. Props können ein Array oder ein Objekt sein. Die empfangenen Daten können direkt verwendet werden props: ["property name"] props:{property name: data type} //Übergeordnete Komponente <template> <div> <i>Übergeordnete Komponente</i> <!--Seitennutzung--> <son :data='Name'></son> </div> </Vorlage> <Skript> importiere Sohn von "./son.vue"; //Übergeordnete Komponente importieren export default { Komponenten: { Sohn }, //Komponentenname registrieren: "übergeordnete Komponente", Daten() { zurückkehren { Name: "Frazier", //übergeordnete Komponente definiert Variablen}; }, }; </Skript> //Unterkomponente <Vorlage> <div>{{Daten}}</div> </Vorlage> <Skript> Standard exportieren { Komponenten: { }, Name: 'Unterkomponente', Requisiten: ["Daten"], }; </Skript> 2. Vom Sohn zum Vater (1) Passen Sie ein Ereignis im untergeordneten Komponenten-Tag der übergeordneten Komponente an und rufen Sie dann die erforderliche Methode auf. //Übergeordnete Komponente <template> <div> <i>Übergeordnete Komponente</i> <!--Seitennutzung--> <son @lcclick="lcclick"></son>//Ein Ereignis anpassen</div> </Vorlage> <Skript> importiere Sohn von "./son.vue"; //Übergeordnete Komponente importieren export default { Komponenten: { Sohn }, //Komponentenname registrieren: "übergeordnete Komponente", Daten() { zurückkehren {}; }, Methoden: { lcklick(){ Alarm (,Sohn geht an Vater über‘) } }, }; </Skript> //Unterkomponente <Vorlage> <div> <button @click="lcalter">Klick mich</button> </div> </Vorlage> <Skript> Standard exportieren { Komponenten: { }, Name: 'Unterkomponente', Methoden: { lcalter(){ this.$emit('lcclick')//Löse das Ereignis durch emittieren aus} }, }; </Skript> 3. Brother-Komponentenkommunikation (Bus) (1) Erstellen Sie eine neue Bus.js-Datei in src und exportieren Sie eine leere Vue-Instanz Bildbeispiele: 4. ref/refs (Kommunikation zwischen übergeordneten und untergeordneten Komponenten) (1) Wenn ref auf einem normalen DOM-Element verwendet wird, zeigt die Referenz auf das DOM-Element. Wenn es auf einer untergeordneten Komponente verwendet wird, zeigt die Referenz auf die Komponenteninstanz. //Übergeordnete Komponente <template> <div> <button @click="sayHello">sagHallo</button> <child ref="childForRef"></child> </div> </Vorlage> <Skript> Kind aus „./child.vue“ importieren Standard exportieren { Komponenten: { Kind }, Daten () { zurückkehren { childForRef: null, } }, montiert() { dies.childForRef = dies.$refs.childForRef; Konsole.log(dieses.childForRef.name); }, Methoden: { sagHallo() { dies.childForRef.sayHello() } } } </Skript> //Unterkomponente <Vorlage> <div>Kinderinhalte</div> </Vorlage> <Skript> Standard exportieren { Daten () { zurückkehren { Name: 'Ich bin ein Kind', } }, Methoden: { sagHallo() { console.log('hallo'); Alarm ('Hallo'); } } } </Skript> 5. Vuex-Kommunikation Komponenten werden an Aktionen gesendet, bei denen es sich um asynchrone Vorgänge handelt. Aktionen führen zu Mutationen, die den Status durch logische Vorgänge ändern und dadurch eine Synchronisierung mit Komponenten und eine Aktualisierung ihres Datenstatus durchführen. //Vorlage für übergeordnete Komponente> <div id="app"> <KindA/> <KindB/> </div> </Vorlage> <Skript> importiere ChildA von './ChildA' // Komponente A importieren importiere ChildB von './ChildB' // Komponente B importieren export default { Komponenten: {ChildA, ChildB} // Komponenten registrieren} </Skript> //Unterkomponente A <Vorlage> <div id="KindA"> <h1>Ich bin Komponente A</h1> <button @click="transform">Klicken Sie hier, damit Komponente B Daten empfängt</button> <p>Da auf B geklickt wurde, hat sich die Nachricht geändert: {{BMessage}}</p> </div> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { Eine Nachricht: „Hallo Komponente B, ich bin Komponente A“ } }, berechnet: { BMessage() { // Speichere hier die aus dem Store erhaltenen Daten von Komponente B. returniere this.$store.state.BMsg } }, Methoden: { transformieren() { // receiveAMsg auslösen und die Daten der Komponente A im Store speichern this.$store.commit('receiveAMsg', { AMsg: diese.AMessage }) } } } </Skript> //Unterkomponente B <Vorlage> <div id="KindB"> <h1>Ich bin Komponente B</h1> <button @click="transform">Klicken Sie hier, damit Komponente A Daten empfängt</button> <p>Klicken Sie auf A, meine Nachricht ändert sich: {{AMessage}}</p> </div> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { BMessage: „Hallo Komponente A, ich bin Komponente B“ } }, berechnet: { EineNachricht() { // Hier speichern wir die aus dem Store erhaltenen Daten der Komponente A. return this.$store.state.AMsg } }, Methoden: { transformieren() { // receiveBMsg auslösen und die Daten der Komponente B im Store speichern this.$store.commit('receiveBMsg', { BMsg: diese.BMessage }) } } } </Skript> // vuex Vue von „vue“ importieren Vuex von „vuex“ importieren Vue.Verwenden(Vuex) konstanter Zustand = { AMsg: '', BMsg: '' } const Mutationen = { receiveAMsg(Zustand, Nutzlast) { //Speichere die Daten der Komponente A im Zustand Zustand.AMsg = Nutzlast.AMsg }, receiveBMsg(Zustand, Nutzlast) { //Speichere die Daten der Komponente B im Zustand Zustand.BMsg = Nutzlast.BMsg } } exportiere standardmäßig neuen Vuex.Store({ Zustand, Mutationen }) 6. $Eltern Übergeordnet kann die Instanz der übergeordneten Komponente abgerufen werden. Über diese Instanz können dann die Eigenschaften und Methoden der übergeordneten Komponente abgerufen werden. Es gibt auch einen übergeordneten Bruder, der die Instanz der übergeordneten Komponente abrufen kann. Über diese Instanz können dann die Eigenschaften und Methoden der übergeordneten Komponente abgerufen werden. Es gibt auch einen übergeordneten Bruder, der die Instanz der übergeordneten Komponente abrufen kann. Über diese Instanz können dann die Eigenschaften und Methoden der übergeordneten Komponente abgerufen werden. Es gibt auch einen übergeordneten Bruder, der die Instanz der Stammkomponente abrufen kann. // Daten der übergeordneten Komponente abrufen this.$parent.foo // Daten in die übergeordnete Komponente schreiben this.$parent.foo = 2 // Zugriff auf die berechnete Eigenschaft this.$parent.bar der übergeordneten Komponente //Rufen Sie die Methode der übergeordneten Komponente this.$parent.baz() auf. //Im Beispiel der Übergabe einer untergeordneten Komponente an eine übergeordnete Komponente können Sie this.$parent.getNum(100) verwenden, um den Wert an die übergeordnete Komponente zu übergeben. 7.sessionStorage-Wertübertragung SessionStorage ist ein globales Objekt des Browsers und die darin gespeicherten Daten werden beim Schließen der Seite gelöscht. Mit dieser Funktion können wir eine Kopie der Daten auf allen Seiten teilen. // Daten im SessionStorage speichern sessionStorage.setItem('Schlüssel', 'Wert'); // Daten aus SessionStorage abrufen let data = sessionStorage.getItem('key'); // Gespeicherte Daten aus SessionStorage löschen sessionStorage.removeItem('key'); // Alle gespeicherten Daten aus sessionStorage löschen sessionStorage.clear(); Hinweis: Darin werden Schlüssel-Wert-Paare gespeichert, die nur Zeichenfolgentypen sein können. Wenn Sie Objekte speichern möchten, müssen Sie let objStr = JSON.stringify(obj) verwenden, um sie in eine Zeichenfolge umzuwandeln und dann zu speichern (wenn Sie let obj = JSON.parse(objStr) verwenden, um sie in ein Objekt zu analysieren). //lokaler Speicher storage.set(Schlüssel,Wert) storage.get(Schlüssel, def) //Sitzungsspeicher storage.session.set(Schlüssel, Wert) storage.session.get(Schlüssel, Wert) 8. Routing-Wert Verwenden Sie ein Fragezeichen, um den Wert zu übergeben { Pfad: '/b/:name', Name: 'b', Komponente: () => import( '../views/B.vue') }, Auf Seite B können Sie this.$route.params.name verwenden, um den Wert des von der Route übergebenen Namens abzurufen. Verwenden Sie die übergeordnete und untergeordnete Komponente, um den Wert zu übergeben. Da die Router-Ansicht selbst auch eine Komponente ist, können wir auch die übergeordnete und untergeordnete Komponente verwenden, um den Wert zu übergeben, und dann der entsprechenden untergeordneten Seite Requisiten hinzufügen. Da die Route nach der Aktualisierung des Typs nicht aktualisiert wird, kann der neueste Typwert nicht direkt im montierten Hook der untergeordneten Seite abgerufen werden, sondern es wird watch verwendet <router-view :type="Typ"></router-view> // Unterseiten-Eigenschaften: ['Typ'] betrachten: Typ(){ // console.log("Mit dieser Methode können Sie immer die aktuellsten Daten abrufen: type=", this.type) }, }, 9. Enkel des Vorfahren $attrs Unter normalen Umständen müssen Sie die Requisiten des Vaters als Zwischenübergang verwenden. Auf diese Weise verfügt die Vaterkomponente jedoch über mehr Attribute, die nicht mit dem Geschäft der übergeordneten Komponente zusammenhängen, und die Kopplung ist hoch. Mithilfe von $attrs kann dies vereinfacht werden, und weder das Großelternteil noch das Enkelkind müssen geändert werden. <Vorlage> <Abschnitt> <parent name="grandParent" sex="男" age="88" hobby="code" @sayKnow="sayKnow"></parent> </Abschnitt> </Vorlage> <Skript> importiere Parent von './Parent' Standard exportieren { Name: „Großeltern“, Komponenten: Elternteil }, Daten() { zurückkehren {} }, Methoden: { sagWissen(Wert){ console.log(Wert) } }, montiert() { } } </Skript> Übergeordnete Komponente <Vorlage> <Abschnitt> <p>Die übergeordnete Komponente empfängt</p> <p>Name des Großvaters: {{name}}</p> <Kinder v-bind="$attrs" v-on="$listeners"></Kinder> </Abschnitt> </Vorlage> <Skript> Kinder aus './Children' importieren Standard exportieren { Name: "Übergeordnet", Komponenten: Kinder }, // Die übergeordnete Komponente erhält den Namen, daher wird der Namenswert nicht an die Eigenschaften der untergeordneten Komponente weitergegeben: ['name'], Daten() { zurückkehren {} }, Methoden: {}, montiert() { } } </Skript> Unterkomponenten <Vorlage> <Abschnitt> <p>Unterkomponente empfangen</p> <p>Name des Großvaters: {{name}}</p> <p>Geschlecht des Großvaters: {{sex}}</p> <p>Alter des Großvaters: {{age}}</p> <p>Großvaters Hobby: {{hobby}}</p> <button @click="sayKnow">Ich weiß</button> </Abschnitt> </Vorlage> <Skript> Standard exportieren { Name: "Kinder", Komponenten: {}, // Da die übergeordnete Komponente das Namensattribut erhalten hat, wird der Name nicht an die untergeordnete Komponente weitergegeben props:['sex','age','hobby','name'], Daten() { zurückkehren {} }, Methoden: { sagWissen(){ dies.$emit('sayKnow','Ich weiß') } }, montiert() { } } </Skript> 10. Sun Chuanzu verwendet $listenersDas Gleiche wie der neunte Vorgängerkomponenten <Vorlage> <div id="app"> <Kinder-Eins @eventOne="eventOne"></Kinder-Eins> {{ msg }} </div> </Vorlage> <Skript> importiere ChildrenOne aus '../src/components/children.vue' Standard exportieren { Name: "App", Komponenten: KinderEins, }, Daten() { zurückkehren { Nachricht: '' } }, Methoden: { eventOne(Wert) { this.msg = Wert } } } </Skript> Übergeordnete Komponente <Vorlage> <div> <Kinder-Zwei v-on="$listeners"></Kinder-Zwei> </div> </Vorlage> <Skript> importiere ChildrenTwo aus './childrenTwo.vue' Standard exportieren { Name: 'childrenOne', Komponenten: KinderZwei } } </Skript> Unterkomponenten <Vorlage> <div> <button @click="setMsg">Klicken, um an Großvater weiterzugeben</button> </div> </Vorlage> <Skript> Standard exportieren { Name: 'Kinder', Methoden: { setMsg() { dies.$emit('eventOne', '123') } } } </Skript> 11. Promise-ParameterübergabeSo übergeben Sie mehrere Parameter in der Promise-Auflösung //Ähnlich wie diese Verwendung, aber tatsächlich können die letzten beiden Parameter nicht erhalten werden promise = new Promise((resolve,reject)=>{ sei a = 1 sei b = 2 sei c = 3 auflösen(a,b,c) }) versprechen.dann((a,b,c)=>{ konsole.log(a,b,c) }) resolve() kann nur einen Parameter akzeptieren und verarbeiten, und alle zusätzlichen Parameter werden ignoriert. Versprechen = neues Versprechen((lösen, ablehnen)=>{ auflösen([1,2,3]) }) versprechen.dann((arr)=>{ konsole.log(arr[0],arr[1],arr[2]) }) Objekt Versprechen = neues Versprechen((lösen, ablehnen)=>{ lösen({a:1,b:2,c:3}) }) versprechen.dann(obj=>{ konsole.log(Objekt.a,Objekt.b,Objekt.c) }) 12. Globale Variablen Definieren Sie eine globale Variable, weisen Sie der Komponente mit einem Wert direkt einen Wert zu und verwenden Sie ihn direkt in der erforderlichen Komponente. Weitere Einzelheiten finden Sie in meinem Blog. Damit ist dieser Artikel über die zwölf Methoden der Vue-Wertübertragung abgeschlossen. Weitere Informationen zur Vue-Wertübertragung 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:
|
<<: Detaillierte Erläuterung der Systemeingabe- und -ausgabeverwaltung in Linux
>>: Detailliertes Tutorial zur Installation von MySQL 5.7.20 auf RedHat 6.5/CentOS 6.5
Inhaltsverzeichnis 1. Konzept 1.1 Definition 1.2 ...
Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...
Die erste Möglichkeit besteht darin, jQuery's...
Inhaltsverzeichnis Vorwort: 1. Verstehen Sie Lock...
Lassen Sie mich kurz das Funktionsszenario erklär...
Inhaltsverzeichnis Vorteil 1: Optimierung des Dif...
Die Standard-MySQL-Version unter dem Alibaba Clou...
brauchen Das Konfigurieren von DingTalk-Alarmen i...
1. Konfiguration der Serverumgebung: 1. Überprüfe...
In diesem Artikel werden hauptsächlich die folgen...
Wenn wir verstehen, wie Tomcat gleichzeitige Anfr...
Mir sind mehrere Möglichkeiten bekannt, die Ankerp...
Klären Sie zunächst einige Konzepte: JDBC: Java-D...
In diesem Artikel wird der spezifische Code für J...
Lassen Sie uns über einige Probleme sprechen, die ...