Fallstudie zur dynamischen Datenbindung von this.$set in Vue

Fallstudie zur dynamischen Datenbindung von this.$set in Vue

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:
  • Verwendung und Unterschied von Vue.set() und this.$set()
  • Lösung für den Vue-Fehler TypeError: this.$set ist keine Funktion
  • Vue.set() this.$set() löst Ansichtsaktualisierungen und Überlegungen aus
  • Analysieren von Vue.set() und this.$set() aus dem Vue-Quellcode
  • Detaillierte Erklärung zur Verwendung von this.$set in Vue

<<:  Eine kurze Erläuterung der ifnull()-Funktion ähnlich der nvl()-Funktion in MySQL

>>:  Detaillierte Erklärung der Installationsbefehle und Verwendung von Docker und FastDFS

Artikel empfehlen

Ein Artikel zum Umgang mit Mysql-Datums- und Zeitfunktionen

Inhaltsverzeichnis Vorwort 1. Aktuelle Uhrzeit er...

Alibaba Cloud Server Ubuntu Konfigurations-Tutorial

Da für den Import benutzerdefinierter Ubuntu-Imag...

So verwenden Sie crontab zum Hinzufügen geplanter Aufgaben in Linux

Vorwort Das Linux-System wird durch den Systemdie...

Beispiel für eine Nginx-Cache-Konfiguration

Beim Entwickeln und Debuggen einer Webanwendung s...

Lösung für die Willkommensmeldung im Notfallmodus beim Booten von CentOS7.4

Heute habe ich eine virtuelle Maschine für ein Ex...

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...

So begrenzen Sie den Wertebereich von Objektschlüsseln in TypeScript

Wenn wir TypeScript verwenden, möchten wir das vo...

Implementierung der Kommunikation zwischen Vue und Flask

axios installieren und Kommunikation implementier...

JavaScript implementiert eine Warteschlange mit doppeltem Ende

In diesem Artikelbeispiel wird der spezifische Co...

Tipps zur Verwendung von Frameset zum Zentrieren des Breitbilds

Code kopieren Der Code lautet wie folgt: <fram...

Vollständiger Code zur Implementierung der Vue-Backtop-Komponente

Wirkung: Code: <Vorlage> <div Klasse=&qu...

Untersuchung der MySQL-Paging-Leistung

Mehrere gängige Paging-Methoden: 1. Rolltreppenme...

Tabellen dynamisch in HTML hinzufügen_PowerNode Java Academy

Ohne weitere Umschweife werde ich den Code direkt...