Detaillierte Erläuterung der Implementierung und Anwendungsszenarien des Vue-Filters

Detaillierte Erläuterung der Implementierung und Anwendungsszenarien des Vue-Filters

1. Kurze Einführung

Vue.js ermöglicht es Ihnen, Ihre eigenen Filter zu definieren, die für einige gängige Textformatierungen verwendet werden können.

Filter können an zwei Stellen verwendet werden: Interpolation mit doppelten geschweiften Klammern und V-Bind-Ausdrücken (letzteres wird seit 2.1.0+ unterstützt).

Filter sollten am Ende eines JavaScript-Ausdrucks hinzugefügt werden, gekennzeichnet durch das „Pipe“-Symbol:

<!-- in doppelten geschweiften Klammern -->
{{ Nachricht | Filter }}

<!-- In `v-bind` -->
<div v-bind:msg="Nachricht | Filter"></div>

Filterfunktionen erhalten immer den Wert eines Ausdrucks als erstes Argument.

Im obigen Beispiel erhält die Filterfunktion den Wert der Nachricht als erstes Argument.

1.1 Filter können in Reihe geschaltet werden

{{ Nachricht | FilterA | FilterB }}

In diesem Beispiel wird filterA als Filterfunktion definiert, die einen einzelnen Parameter akzeptiert. Der Wert der Ausdrucksnachricht wird als Parameter an die Funktion übergeben. Rufen Sie dann weiterhin die Filterfunktion FilterB auf, die ebenfalls für den Empfang eines einzelnen Parameters definiert ist, und übergeben Sie das Ergebnis von FilterA an FilterB.

1.2 Filter sind JavaScript-Funktionen, die Parameter empfangen können

{{ Nachricht | filterA('arg1', arg2) }}

filterA ist als Filterfunktion definiert, die drei Parameter akzeptiert. Der Wert der Nachricht ist der erste Parameter, die normale Zeichenfolge „arg1“ ist der zweite Parameter und der Wert des Ausdrucks arg2 ist der dritte Parameter.

2. Definieren Sie globale Filter in vue-cli

Syntax: Vue.filter( filterName, ( ) => { return // Datenverarbeitungsergebnisse} )

z.B:

<div id="app">
  <h3>{{Benutzername | addName}}</h3>
</div>
<Skript>
// Parameter 1: ist der Name des Filters, also die Verarbeitungsfunktion nach dem Pipe-Zeichen;
// Parameter 2: Verarbeitungsfunktion, die Parameter der Verarbeitungsfunktion sind die gleichen wie oben	
Vue.filter("addName",(Wert)=>{											            
    returniere "mein Name ist" + Wert
})
lass vm = neues Vue({
    el:"#app",
  	Daten:{
     Benutzername: „Xiaoming“ 
    }
})
</Skript>

2.1 Tatsächliche Entwicklung und Nutzung

Globale Filter werden häufig zur Datenänderung verwendet. Normalerweise extrahieren wir die Verarbeitungsfunktionen und fügen sie in eine JS-Datei ein.

// filter.js filelet filterPrice = (Wert) => {
	Rückgabewert 'erhalten' + Wert + 'Yuan'
}
let filterDate = (Wert) => {
    Rückgabewert + 'Tag'
}

Exportstandard {Filterpreis, Filterdatum}

Importieren Sie die obige Datei filter.js in main.js. Sie können die Datei filter.js auch in jede beliebige Komponente importieren, aber für globale Filter ist es am besten, sie in main.js zu definieren. Was importiert wird, ist ein Objekt. Verwenden Sie daher die Methode Object.keys(), um ein Array von Schlüsseln abzurufen, die Daten zu durchlaufen und den Schlüssel als Namen des globalen Filters anzugeben. Anschließend folgt die dem Schlüssel entsprechende Verarbeitungsfunktion, damit der globale Filter in jeder beliebigen Komponente verwendet werden kann:

//main.js
 
// Unten sind 2 Möglichkeiten zum Importieren aufgeführt. Die erste wird empfohlen: import * as filters from './utils/filter/filter'
// importiere {filterPrice,filterDate} aus './utils/filter/filter'
 
console.log(Filter)
 
Objekt.Schlüssel(Filter.Standard).fürJeden((Element)=>{
  Vue.filter(Element,Filter.Standard[Element])
})
 
neuer Vue({
  Router,
  speichern,
  rendern: h => h(App),
}).$mount('#app')

3. Verwenden Sie globale Filter in Komponenten:

//test.vue

<Vorlage>
  <div>
    <Eingabetyp="Text" v-Modell="Filteranzahl" >
    <div>{{filterCount | filterPrice}}</div>
    <div>{{filterCount | filterDate}}</div>
  </div>  
</Vorlage>

<Skript>
Standard exportieren {
  Daten(){
    zurückkehren {
      filterCount:1500
    }
  },
}
</Skript>

3. Definieren Sie lokale Filter in vue-cli

//test.vue

<Vorlage>
  <div>
    <Eingabetyp="Text" v-Modell="Filteranzahl" >
    <div>{{filterCount | filterPrice}}</div>
    <div>{{filterCount | filterDate}}</div>
  </div>  
</Vorlage>

<Skript>
Standard exportieren {
  Daten(){
    zurückkehren {
      filterCount:1500
    }
  },
}
</Skript>

4. Häufige Nutzungsszenarien

4.1 Datum (Uhrzeit) formatieren

Szenario 1: Vom Backend gesendete Uhrzeit: 2019-11-19T04:32:46Z

Installieren Sie moment.js

// Haupt.js

Moment aus „Moment“ importieren
// Globales Filter definieren - Zeitformat Vue.filter('format',function(val,arg){
  wenn(!val) zurückgeben;
  val = val.toString()
  Rückgabewert(Wert).Format(Argument)
})

//test.vue

<Vorlage>
   <div class="filter">{{Zeit | Format('JJJJ-MM-TT HH:MM:SS')}}</div>  
</Vorlage>

<Skript>
Standard exportieren {
  Daten(){
    zurückkehren {
      Zeit:'2019-11-19T04:32:46Z'
    }
  }
}
</Skript>

Zusammenfassen

Dies ist das Ende dieses Artikels über die Implementierung und Anwendungsszenarien von Vue-Filtern. Weitere relevante Inhalte zur Implementierung und Anwendung von Vue-Filtern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Datenproxys und der Ereignisse von VUE
  • Eine kurze Diskussion über das Prinzip des bidirektionalen Ereignisbindungs-V-Modells von Vue
  • Detaillierte Erläuterung der dynamischen Vue-Komponenten und Zusammenfassung der globalen Ereignisbindung
  • Verwendung von Vue-Filtern und Probleme bei der Zeitstempelkonvertierung
  • Detaillierte Erläuterung der Daten- und Ereignisbindung sowie der Filterfilter von Vue

<<:  MySQL-Partitionierungspraxis mit Navicat

>>:  Detailliertes Tutorial zur Installation von VirtualBox und Ubuntu 16.04 unter Windows

Artikel empfehlen

50 wunderschöne FLASH-Website-Designbeispiele

Mit Flash konnten Designer und Entwickler umfangr...

So konfigurieren Sie Nginx zur Rückgabe von Text oder JSON

Manchmal müssen Sie beim Anfordern bestimmter Sch...

So verwenden Sie Vue3-Mixin

Inhaltsverzeichnis 1. Wie verwende ich Mixin? 2. ...

So implementieren Sie die Seiten-Screenshot-Funktion in JS

„Seiten-Screenshot“ ist eine Anforderung, die häu...

Prinzip der Ereignisdelegierung in JavaScript

Inhaltsverzeichnis 1. Was ist Eventdelegation? 2....

MySQL-Datenbankgrundlagen: Eine Zusammenfassung der grundlegenden Befehle

Inhaltsverzeichnis 1. Hilfeinformationen nutzen 2...

Reacts Übergang von Klassen zu Hooks

Inhaltsverzeichnis ReagierenHooks Vorwort WarumHo...

HTML-Grundlagen HTML-Struktur

Was ist eine HTML-Datei? HTML steht für Hyper Text...

Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen

Inhaltsverzeichnis Allgemeine MySQL-Funktionen 1....

So ändern Sie das Root-Passwort in einem Container mit Docker

1. Verwenden Sie den folgenden Befehl, um das SSH...