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
Inhaltsverzeichnis Vorwort 1. Aktuelle Uhrzeit er...
Da für den Import benutzerdefinierter Ubuntu-Imag...
Vorwort Das Linux-System wird durch den Systemdie...
Beim Entwickeln und Debuggen einer Webanwendung s...
Heute habe ich eine virtuelle Maschine für ein Ex...
Wenn Sie Bash beenden möchten, haben Sie zwei Mög...
Wenn wir TypeScript verwenden, möchten wir das vo...
axios installieren und Kommunikation implementier...
In diesem Artikelbeispiel wird der spezifische Co...
Code kopieren Der Code lautet wie folgt: <fram...
Wirkung: Code: <Vorlage> <div Klasse=&qu...
Mehrere gängige Paging-Methoden: 1. Rolltreppenme...
1) Geltungsbereich: schreibgeschützt: Eingabe [Typ...
Ohne weitere Umschweife werde ich den Code direkt...
Redis ist eine Open-Source-NoSQL-Datenbank, die i...