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

So ändern Sie die Standardcodierung von MySQL in Linux

Wenn während des Entwicklungsprozesses nach der W...

So fügen Sie einem Hintergrundbild in CSS3 eine Farbmaske hinzu

Vor einiger Zeit stieß ich während der Entwicklun...

HTML-Bildlaufleisten-Textbereichsattributeinstellung

1. Überlaufinhalt-Überlaufeinstellungen (festlegen...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

So stellen Sie Tencent Cloud Server von Grund auf bereit

Da dies mein erster Beitrag ist, weisen Sie mich ...

Ausführliche Erklärung zum Currying von JS-Funktionen

Inhaltsverzeichnis 1. Ergänzende Wissenspunkte: i...

Detaillierte Erklärung zur Verwendung von Eslint in Vue

Inhaltsverzeichnis 1. Beschreibung 2. Laden Sie d...

Detailliertes Beispiel einer MySQL-Unterabfrage

Unterabfrageklassifizierung Klassifizierung nach ...

Detaillierte Einführung in den Nobody-Benutzer und Nologin im Unix/Linux-System

Was ist der Nobody-Benutzer in Unix/Linux-Systeme...

css Alle Elemente ab dem n-ten abrufen

Der spezifische Code lautet wie folgt: <div id...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

Installieren Sie MySQL 5.7 unter Ubuntu 18.04

Dieser Artikel wurde unter Bezugnahme auf die off...

Erfahren Sie mehr über das V-Modell und seine Modifikatoren in einem Artikel

Inhaltsverzeichnis Vorwort Modifikatoren des V-Mo...

Der Unterschied zwischen Löschen, Abschneiden und Löschen und wie man wählt

Vorwort Letzte Woche fragte mich ein Kollege: „Br...

Umfassendes Verständnis von Zeilenhöhe und vertikaler Ausrichtung

Vorherige Wörter Zeilenhöhe, Schriftgröße und vert...