Ich finde, dass die Erklärung von this.$set im Internet chaotisch ist. Lassen Sie mich die Bindung einzelner Daten, Objekte, Arrays und JSON-Daten zusammenfassen. Kommen wir ohne weitere Umschweife direkt zum Code: <Vorlage> <div> <!-- Einzelne Daten --> <button @click="text0a">text0</button> <p>text0: {{text0}}</p> <!-- Objekt --> <button @click="textObja">TextObj</button> <p>textObj.text1: {{textObj.text1}}</p> <!-- Array --> <button @click="textArra">textArr</button> <p>textArr[1]: {{textArr[1]}}</p> <!-- json-Daten --> <button @click="textJsona">textJson</button> <p>textJson[1].t5: {{textJson[1].t5}}</p> </div> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { text0: '', textObj: {}, textArr: [], textJson:[ {t0: ''}, {t4: ''}, {t7: ''}, ] } }, Methoden: { text0a: Funktion () { lass vm = dies let text100 = "efghjk" vm.$set(vm,'text0',text100) //Entspricht vm.$set(vm,'text0','efghjk') }, textObja: Funktion () { lass vm = dies let textObj100 = { text1: '123', text2: '456' } vm.$set(vm.textObj,'text1',textObj100.text1) //Dies entspricht vm.$set(vm,'textObj',textObj100) }, textArra: Funktion () { lass vm = dies let textArr200 = ['a1','a2','a3'] vm.$set(vm,'textArr',textArr200) }, textJsona: Funktion () { lass vm = dies let textJson300 = [ {t1: 't1',t2: 't2',t3: 't3'}, {t4: 't4',t5: 't5',t6: 't6'}, {t7: 't7',t8: 't8',t9: 't9'}, ] vm.$set(vm.textJson[1],'t5',textJson300[1].t5) //Dies entspricht vm.$set(vm,'textJson',textJson300) } } } </Skript> <Stil> </Stil> Ergänzung: Vue verwendet $set, um Attribute für Daten dynamisch festzulegen Im eigentlichen Entwicklungsprozess werden beim Binden eines Modells an ein Formularelement die Attribute des gebundenen Elements basierend auf den Hintergrunddaten dynamisch generiert. Wenn Sie die herkömmliche Zuordnungsmethode verwenden, können Sie die Ansicht nicht aktualisieren Muss verwendet werden dies.$set(Datenname,Schlüsselname,Schlüsselwert) Standard exportieren { Daten:{ //Definieren Sie zuerst ein leeres Objekt formObject:{}, ArrayList:[], }, montiert() { diese.initPage() }, Methoden:{ initPage(){ dies.$store.dispatch(namespace/callData).dann(res=>{ //Schlüsselwert für die Daten festlegen res.data.forEach(item=>{ // ❗❗❗❗❗ this.formObject[item.name] = item.value // ❗❗❗❗ Diese Methode kann die Ansicht nicht aktualisieren this.$set(this.formObject, item.name, item.value) // ✅✅✅✅Kann die Ansicht aktualisieren}) }) // Ändern Sie das Array this.$store.dispatch(namespace/callData).then(res=>{ //Schlüsselwert für die Daten festlegen this.$set(this.arrayList,0,(res.data)[0].id) ✅✅✅✅Kann die Ansicht aktualisieren}) } } } Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Eine kurze Erläuterung der ifnull()-Funktion ähnlich der nvl()-Funktion in MySQL
>>: Detaillierte Erklärung der Installationsbefehle und Verwendung von Docker und FastDFS
Überblick UNION Mit dem Schlüsselwort „Verbindung...
Inhaltsverzeichnis Vorwort 1. Nginx + Tomcat 2. K...
1. getElementById von IE8 unterstützt nur IDs, nic...
Syntax: ROW_NUMBER() OVER(PARTITION BY COLUMN ORD...
Mehrere Konzepte Zeilenbox: Eine Box, die eine In...
Sinnvolle Einstellung des MySQL sql_mode sql_mode...
Im vorherigen Artikel haben wir die Netzwerkerken...
Als ich nachts meinen MAC einschaltete, stellte i...
gzip ist ein Befehl, der in Linux-Systemen häufig...
Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...
MySQL implementiert Sequenzfunktion 1. Erstellen ...
Inhaltsverzeichnis 1. Requisiten/$emit Einführung...
1. Vorhandene Module anzeigen /usr/local/nginx/sb...
Verifizierungsumgebung: [root@~~/]# rpm -qa | gre...
Mit CSS3 können Animationen erstellt werden, die ...