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

Eine kurze Analyse der expliziten Typkonvertierung von MySQL

CAST-Funktion Im vorherigen Artikel haben wir die...

MySQL-Abfragedaten für heute, diese Woche, diesen Monat und letzten Monat

Heute Wählen Sie * aus Tabellenname, wobei to_day...

So erzielen Sie mit three.js einen dynamischen 3D-Texteffekt

Vorwort Hallo zusammen, hier ist der CSS-Assisten...

Zählen Sie die Listen-Tags in HTML

1. <dl> definiert eine Liste, <dt> de...

Von CSS 3D zur räumlichen Koordinatenachse mit Quellcode

Einmal haben wir über das Würfelspiel gesprochen....

HTML verwendet reguläre Ausdrücke zum Testen von Tabellenbeispielen

Hier ist ein Beispielcode für die Verwendung regu...

So optimieren Sie MySQL-Gruppen nach Anweisungen

Erstellen Sie in MySQL eine neue Tabelle mit drei...