Lösung für Vues Unfähigkeit, Array-Änderungen zu beobachten

Lösung für Vues Unfähigkeit, Array-Änderungen zu beobachten

1. Vue-Listener-Array

Vue kann Array-Änderungen überwachen, wie zum Beispiel

Daten () {
  zurückkehren {
    UhrArr: [],
  };
},
watchArr (neuerWert) {
  console.log('Listening: ' + newVal);
},
erstellt () {
  setzeTimeout(() => {
    dies.watchArr = [1, 2, 3];
  }, 1000);
},

Verwenden Sie beispielsweise splice(0,2,3), um zwei Elemente aus dem Array-Index 0 zu löschen und ein Element 3 am Index 0 einzufügen.

Daten () {
  zurückkehren {
    UhrArr: [1, 2, 3],
  };
},
watchArr (neuerWert) {
  console.log('Listening: ' + newVal);
},
erstellt () {
  setzeTimeout(() => {
    dies.watchArr.splice(0, 2, 3);
  }, 1000);
},

Auch das Push-Array kann überwacht werden.

2. Situationen, in denen Vue Array-Änderungen nicht überwachen kann

Allerdings können Arrays in den folgenden beiden Situationen nicht überwacht werden

  • Wenn Sie ein Array-Element direkt über einen Index festlegen, zum Beispiel arr[indexofitem]=newValue
  • Beim Ändern der Länge eines Arrays, zum Beispiel arr.length = newLength

Beispiel für eine Situation, in der Array-Änderungen nicht überwacht werden können

1. Verwenden Sie Indizes, um Array-Werte direkt zu ändern

Daten () {
  zurückkehren {
    UhrArr: [{
      Name: 'krry',
    }],
  };
},
watchArr (neuerWert) {
  console.log('Listening: ' + newVal);
},
erstellt () {
  setzeTimeout(() => {
    this.watchArr[0].name = "xiaoyue";
  }, 1000);
},

2. Ändern Sie die Länge des Arrays

  • Wenn die Länge größer als das ursprüngliche Array ist, werden die nachfolgenden Elemente auf undefiniert gesetzt
  • Wenn die Länge kürzer als das ursprüngliche Array ist, werden die zusätzlichen Elemente abgeschnitten.
Daten () {
  zurückkehren {
    UhrArr: [{
      Name: 'krry',
    }],
  };
},
watchArr (neuerWert) {
  console.log('Listening: ' + newVal);
},
erstellt () {
  setzeTimeout(() => {
    diese.watchArr.length = 5;
  }, 1000);
},

Dies ist das Ende dieses Artikels darüber, dass Vue keine Array-Änderungen beobachten kann. Weitere verwandte Inhalte darüber, dass Vue keine Array-Änderungen beobachten kann, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Details zu den Überwachungseigenschaften der Uhr in Vue
  • Detaillierte Erklärung der grundlegenden Verwendung des VUE Watch Listener
  • Gründe und Lösungen für die mehrfache Ausführung der Überwachungsmethode, wenn Vue Routenänderungen überwacht
  • Vue Watch zur Eigenschaftsüberwachung in Objekten
  • Zusammenfassung der Vue Watch-Überwachungsmethoden

<<:  Detaillierte Erklärung der Docker-Nutzung unter CentOS8

>>:  Gründe und Optimierungslösungen für langsames MySQL-Limit-Paging mit großen Offsets

Artikel empfehlen

MySQL 5.7.17 neuestes Installationstutorial mit Bildern und Text

mysql-5.7.17-winx64 ist die neueste Version von M...

Eine detaillierte Anleitung zu benutzerdefinierten Anweisungen in Vue

Inhaltsverzeichnis 1. Was ist eine benutzerdefini...

$nextTick-Erklärung, die Sie auf einen Blick verstehen

Inhaltsverzeichnis 1. Funktionsbeschreibung 2. Üb...

Gründe, warum MySQL 8.0-Statistiken ungenau sind

Vorwort Unabhängig davon, ob es sich um Oracle od...

Verwendung des Linux-Befehls „sar“ und Analyse von Codebeispielen

1. CPU-Auslastung sar -p (den ganzen Tag anzeigen...

Details zur Verwendung des Vue-Slots

Inhaltsverzeichnis 1. Warum Slots verwenden? 1.1 ...

Beispielcode zur Implementierung einer Upload-Komponente mit Vue3

Inhaltsverzeichnis Allgemeine Entwicklung von Upl...