Konventionelle JS-Verarbeitungsfunktionen für die Entwicklung von Vue Element-Frontend-Anwendungen

Konventionelle JS-Verarbeitungsfunktionen für die Entwicklung von Vue Element-Frontend-Anwendungen

1. Filtern, Zuordnen und Reduzieren von Verarbeitungsmethoden für herkömmliche Sammlungen

Der Hauptzweck der Filterfunktion besteht darin, Array-Elemente zu filtern und ein Array von Elementen zurückzugeben, die die Bedingungen erfüllen.

Konstante Nums = [10,20,30,111,222,333]
let newNums = nums.filter(function(n){
    Rückgabewert n<100
})

Ausgabe:

[10,20,30]

Die Map-Funktion bildet jedes Element des Arrays ab und gibt ein neues Array zurück. Das ursprüngliche Array wird nicht geändert. Multiplizieren Sie jede Zahl in newNums mit 2.

Konstante Nums = [10,20,30,111,222,333]
let neueNums = nums.map(Funktion(n){
    Rückgabewert n*2
})

Ausgabe:

[20,40,60,222,666]

Die Reduce-Funktion wird hauptsächlich dazu verwendet, alle Elemente eines Arrays zusammenzufassen, also beispielsweise zu addieren oder zu multiplizieren.

Konstante Nums = [10,20,30,111,222,333]
let newNums = nums.reduce(Funktion(preValue,n){
    Rückgabewert + n
},0)

Ausgabe:

726

Manchmal können mehrere Behandlungen kombiniert werden, wie der folgende umfassende Fall zeigt.

Konstante Nums = [10,20,30,111,222,333]
let newNums = nums.filter(function(n){
    Rückgabewert n<100
}).map(Funktion(n){
    Rückgabewert n*2
}).reduzieren(Funktion(Vorwert,n){
    returniere Vorwert+n
},0)

Ergebnis:

120

Es gibt auch eine Suchmethode für Array-Sammlungen, die der Filtermethode ähnelt.

Die Methode find() wird hauptsächlich verwendet, um das erste Element im Array zurückzugeben, das die Bedingungen erfüllt (wenn kein Element vorhanden ist, wird „undefined“ zurückgegeben).

var Array = [1,2,3,4,5,6,7];
 var Ergebnis = Array.find(Funktion(Wert){
     Rückgabewert > 5; //Bedingung});
 console.log(Ergebnis); //6
 konsole.log(Array); //[1,2,3,4,5,6,7]

In ähnlicher Weise können wir auch den Verarbeitungsmechanismus von require.context in vue verwenden, um Dateien zur Verarbeitung zu durchlaufen, und wir müssen auch Filter verwenden, wie im folgenden Code gezeigt.

Der folgende Code ist eine Filteroperation, die ich für die Dateien in einem Ordner ausführe

const req = require.context('vue-awesome/icons', true, /\.js$/)
const requireAll = requireContext => requireContext.keys()

const re = /\.\/(.*)\.js/

const vueAwesomeIcons = requireAll(req).filter((Schlüssel) => { return Schlüssel.indexOf('index.js') < 0 }).map(i => {
  zurückgeben i.match(re)[1]
})

Standardmäßig exportieren vueAwesomeIcons

2. Rekursive Verarbeitung

Manchmal müssen wir eine JSON-Sammlung basierend auf einem Schlüsselattribut abfragen, weil die Sammlung verschachtelt ist, z. B. untergeordnete Elemente, die eine untergeordnete Sammlung enthalten. Diese Verarbeitungsmethode erfordert Rekursion.

Beispielsweise gibt es in einer von mir definierten Menüsammlung eine solche verschachtelte Struktur. Wenn das entsprechende Objekt entsprechend dem Namen abgerufen werden muss, ist eine rekursive Verarbeitungsfunktion beteiligt.

Schauen wir uns zunächst die JSON-Sammlung des Menüs an.

// Diese Menüdaten werden grundsätzlich vom Server zurückgegeben export const asyncMenus = [
  {
    ID: '1',
    pid: "-1",
    Text: 'Homepage',
    Symbol: „Dashboard“,
    Name: "Armaturenbrett"
  },
  {
    ID: '2',
    pid: "-1",
    Text: 'Produktinformationen',
    Symbol: 'Tabelle',
    Kinder: [
      {
        ID: '2-1',
        pid: "2",
        Text: 'Produktanzeige',
        Name: 'Produktshow',
        Symbol: „Tabelle“
      }]
  },
  {
    ID: '3',
    pid: "-1",
    Text: 'Sonstiges Management',
    Symbol: "Beispiel",
    Kinder: [
      {
        ID: '3-1',
        pid: "3",
        Text: 'Icon-Verwaltung',
        Name: "Symbol",
        Symbol: „Beispiel“
      },
      {
        ID: '3-3',
        pid: "3",
        Text: 'Baumfunktionsanzeige',
        Name: 'Baum',
        Symbol: „Baum“
      },
      {
        ID: '3-2',
        pid: "3",
        Text: 'Sekundäres Menü 2',
        Symbol: 'Baum',
        Kinder: [
          {
            ID: '3-2-2',
            pid: '3-2',
            Text: 'Ebene 3 Menü 2',
            Name: 'menu1-1',
            Symbol: „Formular“
          }
        ]
      }
    ]
  }
]

Wenn wir die Abfrage basierend auf der ID durchlaufen müssen, handelt es sich um eine typische rekursive Abfrageverarbeitung.

// Holen Sie sich das entsprechende Menüobjekt entsprechend der Menü-ID FindMenuById(menuList, menuid) {
      für (var i = 0; i < Menüliste.Länge; i++) {
        var item = Menüliste[i];
        wenn (item.id && item.id === menuid) {
          Rücksendeartikel
        } sonst wenn (Element.Kinder) {
          var foundItem = this.FindMenuById(item.children, menuid)
          if (foundItem) { // Gib foundItem nur zurück, wenn es gefunden wurde
          }
        }
      }
    }

Es ist hier zu beachten, dass Sie bei der Rekursion die folgende direkte Rückgabe nicht verwenden können.

gib dies zurück.FindMenuById(item.children, menuid)

Es muss ermittelt werden, ob ein Ergebnis zurückgegeben wird. Andernfalls gibt die verschachtelte Rekursion möglicherweise den undefinierten Typ zurück.

var foundItem = this.FindMenuById(item.children, menuid)
  if (foundItem) { // Gib foundItem nur zurück, wenn es gefunden wurde
  }

3. forEach-Traversal-Sammlungsverarbeitung

In vielen Fällen müssen wir auch eine forEach-Durchquerung der Sammlung wie folgt durchführen: Verarbeiten Sie sie entsprechend ihrem Schlüsselwert und registrieren Sie den Verarbeitungsvorgang des globalen Filters

// Globale Filter importieren importiere * als Filter aus './filters'
//Globales Filterobjekt registrieren.keys(filters).forEach(key => {
  Vue.filter(Schlüssel, Filter[Schlüssel])
})

Oder wir verarbeiten die Sammlung, nachdem wir Daten über die API erhalten haben

// Produkttyp für Bindungswörterbücher usw. abrufen GetProductType().then(data => {
      wenn (Daten) {
        this.treedata = []; // Löschen Sie die Baumliste data.forEach(item => {
          this.productTypes.set(Artikel-ID, Artikelname)
          this.typeList.push({ Schlüssel: Artikel-ID, Wert: Artikelname })

          var node = { id: Artikel-ID, Bezeichnung: Artikelname }
          dies.treedata.push(Knoten)
        })

        // Listeninformationen abrufen this.getlist()
      }
    });

Oder führen Sie beim Anfordern von Wörterbuchdaten eine nicht leere Wertbeurteilung durch.

// Verwenden Sie den Wörterbuchtyp, um Daten vom Server anzufordern GetDictData(this.typeName).then(data => {
        wenn (Daten) {
          Daten.fürJeden(Element => {
            wenn (Element && Typ von (Element.Wert) !== 'undefiniert' && Element.Wert !== '') {
              das.dictItems.push(Artikel)
            }
          });
        }
      })

Die Methode forEach() wird auch verwendet, um für jedes Element im Array einmal eine Rückruffunktion auszuführen, sie hat jedoch keinen Rückgabewert (oder ihr Rückgabewert ist undefiniert, selbst wenn wir eine return-Anweisung in die Rückruffunktion schreiben, ist der Rückgabewert immer noch undefiniert).

Hinweis: Wenn forEach zwei Parameter enthält, ist der erste Parameter das Element in der Sammlung und der zweite Parameter der Index der Sammlung.

4. Object.assign-Zuweisungsmethode

In einigen Fällen müssen wir eine neue Sammlung in ein anderes Objekt kopieren und die Eigenschaftswerte des ursprünglichen Objekts ersetzen. In diesem Fall können wir die Zuweisungsmethode des Object-Objekts verwenden.

Beispielsweise werden beim Anzeigen der Bearbeitungsoberfläche die angeforderten Objekteigenschaften in das Formularobjekt kopiert.

var param = { id: id }
GetProductDetail(param).then(data => {
	Objekt.zuweisen(this.editForm, Daten);
})

Oder holen Sie sich bei der Abfrage die Abfragebedingungen und führen Sie einen teilweisen Ersatz durch

// Konstruieren Sie reguläre Paging-Abfragebedingungen var param = {
        Typ: dieser.Produkttyp === 'alle' ? '' : dieser.Produkttyp,
        Seitenindex: diese.Seiteninfo.Seitenindex,
        Seitengröße: this.pageinfo.pagesize
      };

      // Fügen Sie die SearchForm-Bedingungen zu param hinzu und senden Sie die Abfrage param.type = this.searchForm.ProductType // Konvertieren Sie in das entsprechende Attribut Object.assign(param, this.searchForm);

5. slice()-Methode

Die Methode slice() gibt ausgewählte Elemente aus einem vorhandenen Array zurück.

Die Syntax ist wie folgt.

arrayObject.slice(Start, Ende)

Wie im folgenden Fall gezeigt.

lass rot = parseInt(Farbe.Scheibe(0, 2), 16)
lass grün = parseInt(color.slice(2, 4), 16)
lass blau = parseInt(Farbe.Scheibe(4, 6), 16)

Oder wir können die Filterfunktion kombinieren, um einen Teil der Symbolsammlung zu erhalten

vueAwesomeIconsFiltered: Funktion () {
  const das = dies
  var Liste = that.vueAwesomeIcons.filter(Element => { return Element.indexOf(that.searchForm.label) >= 0 })
  wenn (that.searchForm.pagesize > 0) {
    returniere list.slice(0, that.searchForm.pagesize)
  } anders {
    Liste zurückgeben;
  }
}

Oben sind die Details der herkömmlichen JS-Verarbeitungsfunktionen der Front-End-Anwendungsentwicklung von Vue Element aufgeführt. Weitere Informationen zu den herkömmlichen JS-Verarbeitungsfunktionen von Vue Element finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • element-plus, ein vue3.x-UI-Framework (erste Erfahrungen mit der Element-UI-Version 3.x)
  • Verwenden Sie vue3.x+vite+element-ui+vue-router+vuex+axios, um ein Projekt zu erstellen
  • Detaillierte Erläuterung der verschiedenen Möglichkeiten zur Verwendung von Element-Plus in Vue3.x

<<:  Detaillierte Erläuterung zum Kopieren und Einfügen unter Linux in einer virtuellen VMware-Maschine

>>:  So implementieren Sie eine MySQL-Datenbanksicherung in Golang

Artikel empfehlen

W3C Tutorial (14): W3C RDF und OWL Aktivitäten

RDF und OWL sind zwei wichtige semantische Webtec...

JS realisiert die Berechnung des Gesamtpreises der Waren im Warenkorb

JS berechnet den Gesamtpreis der Waren im Warenko...

Detaillierte Erklärung der Linux-Systemverzeichnisse sys, tmp, usr, var!

Der Wachstumspfad vom Linux-Neuling zum Linux-Mei...

CSS-Rand halb oder teilweise sichtbarer Implementierungscode

1. Verwenden Sie Pseudoklassen, um die Hälfte des...

Probleme beim Springen auf HTML-Seiten und bei der Parameterübertragung

HTML-Seitensprung: Fenster.öffnen(URL, "&quo...

js, um einen einfachen Lupeneffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Probleme und Lösungen bei der Installation von Docker in der Alibaba Cloud

Frage Bei der Installation von Docker mithilfe de...

Analyse der zum Ausführen von Docker erforderlichen Berechtigungen

Zum Ausführen von Docker sind Root-Rechte erforde...

So passen Sie mit CSS einen schöneren Link-Prompt-Effekt an

Vorschlag: Das möglichst häufige handschriftliche ...

Zusammenfassung zweier Methoden zum Implementieren der Vue-Druckfunktion

Methode 1: Installieren Sie das Plugin über npm 1...

Vue führt einen einfachen zufälligen Namensaufruf durch

Inhaltsverzeichnis Layoutteil: <div id="a...