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
CAST-Funktion Im vorherigen Artikel haben wir die...
Heute Wählen Sie * aus Tabellenname, wobei to_day...
Vorwort Hallo zusammen, hier ist der CSS-Assisten...
1. <dl> definiert eine Liste, <dt> de...
Inhaltsverzeichnis Herunterladen und Installieren...
Das Projekt muss MySQL verwenden. Da ich es zuvor...
Einmal haben wir über das Würfelspiel gesprochen....
Virtuelle Linux-Maschine: VMware + Ubuntu 16.04.4...
Schritt 1: Ubuntu-Quelle hinzufügen Wechseln Sie ...
Hier ist ein Beispielcode für die Verwendung regu...
Installationseinführung unter Windows: Schauen Si...
Erstellen Sie in MySQL eine neue Tabelle mit drei...
Inhaltsverzeichnis Installation des ESLint-Plugin...
Ehrlich gesagt erfordert diese Frage eine Menge g...
【Vorwort】 Die SMS-Funktion unseres Projekts beste...