Beispielcode zum Hervorheben von Suchbegriffen im WeChat-Miniprogramm

Beispielcode zum Hervorheben von Suchbegriffen im WeChat-Miniprogramm

1. Einleitung

Wenn Sie im Projekt auf eine Anforderung stoßen, suchen Sie nach Daten und markieren Sie die Schlüsselwörter. Wenn Sie die Anforderung erhalten, beginnen Sie sofort mit der Arbeit. Hier zunächst die Renderings. Der Quellcode wurde in einen kleinen Programmcodeausschnitt umgewandelt und in GitHub hochgeladen. Am Ende des Artikels befindet sich ein Link zum Quellcode.

2. Ideen

Das erste, woran der Blogger dachte, war, Split zu verwenden. Er verarbeitete die vom Hintergrund zurückgegebenen Daten entsprechend den gesuchten Schlüsselwörtern, fand dann die Schlüsselwörter mit indexOf und fügte jedem Wort ein tiefes Feld hinzu. Wenn „deep“ wahr ist, wird es hervorgehoben, und wenn es falsch ist, ist es normal. Da es sich um ein kleines Programm handelt, hat der OP es direkt zu einer Highlight-Komponente gemacht. Der Code ist sehr einfach und die Implementierungsschritte sind wie folgt.

3. Code-Logik

Die simulierten Daten sind wie folgt

Liste:[
 „Universität Wuhan“,
 „Huazhong Universität für Wissenschaft und Technologie“,
 „Huazhong Normal University“,
 „Zhongnan Universität für Wirtschaft und Recht“,
 „Chinesische Universität für Geowissenschaften“,
 „Technische Universität Wuhan“,
 „Landwirtschaftliche Universität Huazhong“,
 „Universität für Wissenschaft und Technologie Wuhan“,
],

In den Daten wird ein leeres Array definiert, um die nach dem Suchschlüssel gefilterten Daten zu speichern.

filterList:[], //Gefiltert

wxml und Methoden zum Suchen

// wxml
<Klasse anzeigen="Suchfeld">
 <input type="text" placeholder="Bitte geben Sie die 985/211 Universität in Wuhan ein" bindinput="searchValue" class="search"/>
</Ansicht>

// Suchmethode searchValue(e){
 lass val = e.detail.value;
 this.setData({ Wert:Wert })
 wenn(Wertlänge > 0){
  dies.setData({ filterList:[] })
  sei arr = [];
  für (lass i = 0; i < diese.Datenlistenlänge; i++) {
   wenn(diese.Datenliste[i].indexOf(val) > -1){
    arr.push(diese.Daten.Liste[i])
   }
  }
  this.setData({ filterList: arr })
 }anders{
  dies.setData({ filterList: [] })
 }
}

Definiert eine Highlight-Komponente Highlight

"Komponenten verwenden": {
  "Hervorheben": "../../Komponenten/Hervorheben/Hervorheben"
 }

Übergeben Sie alle auf der Seite gefundenen Elemente und Schlüsselparameter an die Komponente

<view class="list_li" wx:for="{{ filterList }}" wx:key="index" data-index="{{ index }}" bindtap="pitchOn">
 <highlight text="{{ Element }}" key="{{ Wert }}" />
</Ansicht>

Empfangen in Komponente

Eigenschaften:
 Text:Zeichenfolge,
 Schlüssel:{
  Typ: Zeichenfolge,
  Wert:'',
  Beobachter:'_changeText'
 }
}

Ausgangsdaten der Komponente

Daten: {
 highlightList:[], //Verarbeitete Daten}

WXML der Komponente

<text class="{{ item.deep ? 'green' : '' }}" wx:for="{{ highlightList }}" wx:key="index">{{ item.val }}</text>

Komponenten-Highlight-Datenverarbeitung

// Nicht leer filter_changeText(e){
  wenn(e.Länge > 0 && diese.Eigenschaften.text.indexOf(e) > -1){
   dies._filterHighlight(diese.properties.text, e);
  }
 },
 /**
 * Stichworthervorhebung* @param { String } text - text* @param { String } key - stichwort*/
 _filterHighlight(Text, Schlüssel){
  let textList = text.split("");
  let keyList = key.split("");
  lass Liste = [];
  für(lass i = 0;i < Textliste.Länge;i++){
   lass obj = {
    tief:falsch,
    Wert:Textliste[i]
   }
   Liste.push(Objekt);
  };
  für(let k = 0; k < keyList.length; k++){
   Liste.fürJeden(Element => {
    wenn(item.val === keyList[k]){
     item.deep = wahr;
    }
   })
  }
  dies.setData({ HighlightList:Liste })
 }

GitHub-Adresse des Quellcodes: https://github.com/pdd11997110103/ComponentWarehouse

Damit ist dieser Artikel über den Beispielcode zur Implementierung der Hervorhebung von Suchbegriffen in WeChat-Miniprogrammen abgeschlossen. Weitere relevante Inhalte zur Hervorhebung von Suchbegriffen in Miniprogrammen finden Sie in früheren Artikeln auf 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:
  • Das WeChat-Applet verwendet eine benutzerdefinierte Komponentennavigation, um die aktuelle Seite hervorzuheben
  • Das WeChat-Applet implementiert ein Beispiel für die Hervorhebung von globalen Suchcodes

<<:  xtrabackup MySQL-Datenbank sichern und wiederherstellen

>>:  Telnet wird im Alpine-Image zu busybox-extras verschoben

Artikel empfehlen

Detailliertes Beispiel für die Verkettung mehrerer Felder in MySQL

Das Zusammenführen von Zeilen- und Feldergebnisse...

So verwenden Sie async und await richtig in JS-Schleifen

Inhaltsverzeichnis Übersicht (Loop-Modus – Allgem...

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306. A...

So bereinigen Sie den MySQL-Speicherplatz in der Alibaba Cloud

Heute habe ich von Alibaba Cloud eine Festplatten...

Beispielcode zum Festlegen des Beschriftungsstils mithilfe des CSS-Selektors

CSS-Selektoren Durch Festlegen des Stils für das ...

So erstellen Sie einen Pod in Kubernetes

Inhaltsverzeichnis Wie erstelle ich einen Pod? We...

Detaillierte Erklärung des Explain-Typs in MySQL

Einführung: In vielen Fällen denken viele Leute, ...

So installieren Sie Docker und konfigurieren Alibaba Cloud Image Accelerator

Docker-Installation Über die Installation auf ein...

Warum verwendet der MySQL-Datenbankindex den B+-Baum?

Bevor wir weiter analysieren, warum der MySQL-Dat...

Detaillierte Erklärung zur Konfiguration der OpenGauss-Datenbank im Docker

Für Windows-Benutzer Verwenden von openGauss in D...

Eine vollständige Anleitung zum Löschen von Floats in CSS (Zusammenfassung)

1. Übergeordnetes Div definiert Pseudoklassen: af...