Inhaltsverzeichnis
Entwicklungsvorbereitung
Effektanzeige
Vorläufig Vorbereitung
Implementierung
扩展
Zusammenfassung
Heim WeChat-Applet Mini-Programmentwicklung Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Sep 06, 2021 pm 07:25 PM
小程序 搜索功能

Wie implementiert man allgemeine Suchfunktionen in Miniprogrammen? Der folgende Artikel führt Sie Schritt für Schritt durch die Implementierung der Suchfunktion im Miniprogramm. Ich hoffe, er ist hilfreich für Sie!

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Beim Entwickeln jedes kleinen Programms wird es grundsätzlich mit einer Suchfunktion ausgestattet. Nach einer Zeit des Studiums habe ich eine umfassendere Suche gelernt Schauen Sie sich die Rahmenfunktion an!

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Entwicklungsvorbereitung

Effektanzeige

Werfen wir zunächst einen Blick auf den Effekt

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Vorläufig Vorbereitung

Importieren einiger verwendeter Cloud-Datenbankdaten Testen Sie die Suchfeldfunktion

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Implementierung

Erstellen Sie drei neue Seiten unter dem Verzeichnis.

Index wird als erste Seite des Suchfelds verwendet. Suchen Sie nach der Seite, die für bestimmte Suchanfragen verwendet wird

Hotsearch ist eine detaillierte Seite mit Suchinhalten. Schauen wir uns zunächst das Layout des Index auf der ersten Seite des Suchfelds an. Hier stellen wir hauptsächlich den Inhalt des Suchfelds vor Das Folgende wird hier nicht beschrieben.

Dies ist der index.wxml-Code

      <view class="search_1" bindtap="gotoSearch">
          <van-search 
          placeholder="搜索单品" disabled
          />
        </view>
      <view class="search_2">
        <view class="pic" bindtap="list" >
          <image ></image>
        </view>
      </view>
    </view>
Nach dem Login kopieren

Dies ist der search.wxml-Code des Suchfelds

  <view class="dewu-search">
    <view class="return" >
      <view class="return_pic" bindtap="gotoindex">
        <image ></image>
      </view>
      <view class="txt">搜索</view>
    </view>
  </view>
  <van-search 
      value="{{value}}" 
      show-action 
      placeholder="输入商品名称、货号"
      bind:clear="onClear" 
      bind:search="onSearch"   
      bind:cancel="oncancel" 
      bind:change="onchange"
      bindtap="input"
      value="{{value}}"
    />
    <block wx:if="results.length > 0">
      <van-cell wx:for="{{results}}" wx:key="_id" title="{{item.title}}"  size="large"  />
    </block>
    <view class="page1" hidden="{{issuggest==true?&#39;hidden&#39;:&#39;&#39;}}" >
        <view class="bd">
          <view class="content">热门搜索</view>
          <view class="box">
            <view class="items">
              <view class="item" wx:for="{{goods}}"
              wx:key="index"  bindtap="hotsearch" data-id="{{item.id}}"
              >
              {{item.hot}}
              </view>
            </view>
          </view>
        </view>
        <view class="last">
          <view class="content">搜索历史</view>
          <view class="box">
            <view class="items">
              <view class="item" wx:for="{{historyList}}" wx:key="index" data-id="{{item.id}}" bindtap="gotohistoryList"
              wx:key="index">
                {{item.hot}}
              </view>
            </view>
          </view>
        </view>
    </view>
    <view class="page2"   hidden="{{issuggest==false?&#39;hidden&#39;:&#39;&#39;}}">
      <view class="content1">
        <view class="title" wx:for="{{goods1}}" data-id="{{item.id}}"
              wx:key="index"  bindtap="hotsearch" >
              {{item.hot}}
        </view>
      </view>
    </view>
</view>
Nach dem Login kopieren
Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammenjs muss eingeführt werden

rrree

Um sicherzustellen, dass relevante Inhalte angezeigt werden, wenn im Eingabefeld Inhalte eingegeben werden, wird die ausgeblendete Seite angezeigt hidden="{{ issuggest==false?'hidden':''}}", um festzustellen, ob dies erforderlich ist. Verwandte Inhaltsseiten werden angezeigt. Verwenden Sie indexOf, um festzustellen, ob e.detail (Inhalt des Eingabefelds) in der Cloud-Datenbank vorhanden ist. Wenn vorhanden, speichern Sie diese Daten in einem Array und verbinden Sie die zuvor gesuchten Daten Array, verwenden Sie dann wx.setStorageSync();, um die Daten im Eingabefeld im Speicher zu speichern, und verwenden Sie dann wx.getStorageSync(), um die Daten zu extrahieren.

Dies ist die Detailseite, die angezeigt wird, wenn Daten im Eingabefeld vorhanden sind. Klicken Sie hier, um zur Produktdetailseite zu springenEine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

Das ist die Logik des Suchfelds

    const db = wx.cloud.database();
    const dewuCollection = db.collection(&#39;dewu&#39;);
Nach dem Login kopieren

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

hidden="{{issuggest==false?&#39;hidden&#39;:&#39;&#39;}}"来判断是否要出现相关内容页面, 用indexOf判断e.detail(输入框内容)是否是在云数据库里存在的,如果是存在的,那么将这条数据存入一个数组里面,并且连接之前搜索后的数组,再使用 wx.setStorageSync();将输入框的数据存入到storage里面,然后再wx.getStorageSync()提取数据。

这是当输入框有数据的时候就会弹出详情页面,点击可以跳转到商品的详情页

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

这是搜索框的逻辑

    if(e.detail.length!=0){
        this.setData({
          issuggest:true,
        })
        var arr = [];
        console.log(this.data.goods.length);
            for (var i = 0; i < this.data.goods.length; i++) {
              if (this.data.goods[i].hot.indexOf(e.detail)>=0) {
                arr.push(this.data.goods[i]);
              }
              this.setData({
              goods1:arr,
           })
          }
    }
    else {
      console.log(&#39;succes&#39;);
      this.setData({
         issuggest:false
      })
    }
  },
    async onSearch(e){
    var arr1=new Array();
    var historyList=new Array();
    var storage=new Array();
    for (let i = 0; i < this.data.goods.length; i++){
      if(e.detail==this.data.goods[i].hot){
        arr1.push(this.data.goods[i]);
        console.log(arr1);
        break
      }
      else{
              arr1.push(e.detail);
              console.log(arr1);
        }
    }
    if(arr1.length>1){
      this.setData({
        storage:arr1.slice(arr1.length-1,arr1.length)
      })
    }
    else{
      console.log(arr1,&#39;要存进去的数据&#39;);
      this.setData({
        storage:arr1
      })
    }
    if(this.data.historyList !=[]){
      this.data.historyList = this.data.historyList.concat(this.data.storage);//连接
    }
    else{
      this.data.historyList=this.data.storage
    }
   wx.setStorageSync(&#39;historyList&#39;, this.data.historyList);
   this.setData({
    historyList:this.data.historyList
  })
  },
Nach dem Login kopieren

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

wx.navigateTo可以用来跳转到详细的页面,加上字符串模板,判断id的值,用数据来驱动页面,跳转到相同的页面不同的数据。

wx.navigateTo({
      url: `../hotsearch/hotsearch?id=`+id
    })
Nach dem Login kopieren

最后还要更新数据

     wx.showLoading({
       title: &#39;数据加载中...&#39;,
     })   
     setTimeout(()=>{
      wx.hideLoading()
       this.setData({
          goodsNav: nav,
          goodsList:List,
          recommend:List,
          goods2:this.data.historyList
       })
      },1000)
// console.log(goodsList,&#39;===========&#39;);
   },
Nach dem Login kopieren

注意不要忘记要在全局json或者局部页面json里引入需要使用的组件的地址

    "usingComponents": {
        "van-search":"./miniprogram_npm/@vant/weapp/search/index"
  },
Nach dem Login kopieren

扩展

这个自动跳转到导航栏中间的功能也是挺常用的

Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen

这是wxml代码 最主要的是 scroll-x="true" 让导航栏在水平方向可以滑动scroll-with-animation="true"是让滑动产生动画,scroll-into-view="{{scrollTop}}"

      <scroll-view  scroll-x="true"
                 scroll-with-animation="true"
                 style="width:100%;" class="scroll-view_H " 
                 scroll-into-view="{{scrollTop}}">
        <view 
        wx:for="{{goodsNav}}"
        wx:key="index"
        id="{{item.id}}"
        data-index="{{index}}"
        data-type="{{item.type}}"
        bindtap="changegoods"
        class="scroll-view-item_H {{activeNavIndex == index?&#39;active&#39;: &#39;&#39;}}  "
        >
          <text>{{item.text}}</text>
        </view>
      </scroll-view>
    </view>
Nach dem Login kopieren

这是绑定在导航栏上面的事件 let {index, type} = e.currentTarget.dataset;提取到 index 和 type ,然后设置一个count作为前几个不动,然后拼接给id,把id的值传给scrollTop,让导航栏跳到scrollTopwx.navigateTo kann zum Springen verwendet werden Zu detaillierten Seiten hinzufügen, eine Zeichenfolgenvorlage hinzufügen, den Wert der ID bestimmen, Daten zum Steuern der Seite verwenden und mit unterschiedlichen Daten zur gleichen Seite springen.

     console.log(e);
    let {index, type} = e.currentTarget.dataset;
    console.log("index=" +index, "type="+type);
    this.setData({
      activeNavIndex:index
    })
    if (type == &#39;recommend&#39;) {
      this.setData({
        goodsList: this.data.recommend
      })
    } 
    else {
        let goods = this.data.recommend.filter((good) => good.camptype == type )
        this.setData({
          goodsList: goods
        })
        //console.log(this.data.goods)
      }
    
      var index1 = e.currentTarget.dataset.index;
      var count = 2;
      var id = "item"+(index1-count);//拼接id
      if(count == 2 && index1 < 3 || count == 3 && index1 < 2 || count == 4 && index1 < 3){
        id = "item0";
      }
      console.log("下标",index1,"---分类id名称",id)
      this.setData({
        scrollTop: id
      })
    },
Nach dem Login kopieren

Abschließend müssen die Daten aktualisiert werden

rrreee

Achten Sie darauf, nicht zu vergessen, die Adresse der Komponente einzugeben, die Sie im globalen JSON oder lokalen Seiten-JSON verwenden müssen

rrreee

extend

this Die Funktion, automatisch in die Mitte der Navigationsleiste zu springen, ist ebenfalls sehr verbreitet

🎜Eine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen🎜🎜Dies ist der WXML-Code. Das Wichtigste ist scroll-x="true" damit Die Navigationsleiste kann in horizontaler Richtung verschoben werden. scroll-with-animation ="true" soll das Gleiten animieren, scroll-into-view="{{scrollTop}}"🎜rrreee🎜Dies ist ein Ereignis, das an die Navigationsleiste gebunden ist let {index, type} = e.currentTarget.dataset;Index und Typ extrahieren, dann eine Anzahl als die ersten paar festlegen und sie dann zusammenfügen zu id und geben Sie ein. Übergeben Sie den Wert von id an scrollTop und lassen Sie die Navigationsleiste zum Wert von scrollTop springen. code>. Dieser Wert liegt in der Mitte🎜rrreee🎜Auf diese Weise können Sie wxss hinzufügen, um den Effekt zu erzielen Bei dieser Schreibweise gibt es jedoch ein Problem: Wenn der angezeigte Inhalt eine gerade Zahl ist, z. B. 6, kann er nicht korrekt in die Mitte springen und springt an die Position 3, was zu einer leichten Abweichung führt Ich habe dieses Problem noch nicht gelöst. Ich frage mich, ob jemand weiß, wie man das löst. 🎜🎜Quellcode🎜🎜Hier ist der vollständige Quellcode des Projekts oben angegeben. Wenn Sie interessiert sind, können Sie sich den vollständigen Quellcode ansehen🎜🎜🎜https://gitee.com/xinccc/. fullstack_huoshan/tree/master/ wxapp/dewu🎜

Zusammenfassung

Hier schreibe ich hauptsächlich die Hauptschwierigkeiten, auf die ich während des Entwicklungsprozesses gestoßen bin, aber es bedeutet mir trotzdem viel Durch diese Erfahrung habe ich festgestellt, dass ich noch viel lernen muss. Ich bin auch den Lehrern und Klassenkameraden dankbar, die mir geholfen haben, als ich Schwierigkeiten hatte. Wenn Sie das Gefühl haben, dass dieser Artikel Ihren Punkt erreicht hat, können Sie ihn auch geben Geben Sie mir ein „Gefällt mir“, was für mich eine große Ermutigung ist. Ich hoffe, dass wir im Kommentarbereich gemeinsam darüber diskutieren und lernen können.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Einführung in die Programmierung! !

Das obige ist der detaillierte Inhalt vonEine ausführliche Erklärung zur Implementierung von Suchfunktionen in Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entwickeln Sie ein WeChat-Applet mit Python Entwickeln Sie ein WeChat-Applet mit Python Jun 17, 2023 pm 06:34 PM

Mit der Popularität mobiler Internettechnologie und Smartphones ist WeChat zu einer unverzichtbaren Anwendung im Leben der Menschen geworden. Mit WeChat-Miniprogrammen können Benutzer Miniprogramme direkt verwenden, um einige einfache Anforderungen zu erfüllen, ohne Anwendungen herunterladen und installieren zu müssen. In diesem Artikel wird erläutert, wie Sie mit Python ein WeChat-Applet entwickeln. 1. Vorbereitung Bevor Sie Python zum Entwickeln des WeChat-Applets verwenden, müssen Sie die entsprechende Python-Bibliothek installieren. Hier empfiehlt es sich, die beiden Bibliotheken wxpy und itchat zu verwenden. wxpy ist eine WeChat-Maschine

Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Nov 21, 2023 am 10:55 AM

Implementieren von Kartenumdreheffekten in WeChat-Miniprogrammen In WeChat-Miniprogrammen ist die Implementierung von Kartenumdreheffekten ein häufiger Animationseffekt, der die Benutzererfahrung und die Attraktivität von Schnittstelleninteraktionen verbessern kann. Im Folgenden wird detailliert beschrieben, wie der Kartenumdrehungseffekt im WeChat-Applet implementiert wird, und relevante Codebeispiele bereitgestellt. Zunächst müssen Sie in der Seitenlayoutdatei des Miniprogramms zwei Kartenelemente definieren, eines für die Anzeige des vorderen Inhalts und eines für die Anzeige des hinteren Inhalts. Der spezifische Beispielcode lautet wie folgt: &lt;!--index.wxml-. -&gt;&l

Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Oct 31, 2023 pm 09:25 PM

Laut Nachrichten dieser Website vom 31. Oktober und 27. Mai dieses Jahres kündigte die Ant Group den Start des „Chinese Character Picking Project“ an und leitete kürzlich neue Fortschritte ein: Alipay startete das Miniprogramm „Chinese Character Picking – Uncommon Characters“. um Sammlungen der Gesellschaft zu sammeln. Seltene Charaktere ergänzen die Bibliothek seltener Charaktere und bieten unterschiedliche Eingabeerlebnisse für seltene Charaktere, um die Eingabemethode für seltene Charaktere in Alipay zu verbessern. Derzeit können Benutzer das Applet „Ungewöhnliche Zeichen“ aufrufen, indem sie nach Schlüsselwörtern wie „Aufnehmen chinesischer Zeichen“ und „Seltene Zeichen“ suchen. Im Miniprogramm können Benutzer Bilder von seltenen Zeichen einreichen, die vom System nicht erkannt und eingegeben wurden. Nach der Bestätigung nehmen Alipay-Ingenieure zusätzliche Einträge in die Schriftartenbibliothek vor. Auf dieser Website wurde festgestellt, dass Benutzer im Miniprogramm auch die neueste Eingabemethode zur Wortteilung nutzen können. Diese Eingabemethode ist für seltene Wörter mit unklarer Aussprache konzipiert. Demontage durch den Benutzer

Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Oct 20, 2023 pm 02:12 PM

Wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, erfordert spezifische Codebeispiele. Mit der Entwicklung des mobilen Internets und der Popularität von Smartphones sind Miniprogramme und H5 zu unverzichtbaren Anwendungsformen geworden. Als plattformübergreifendes Entwicklungsframework kann Uniapp die Konvertierung zwischen kleinen Programmen und H5 basierend auf einer Reihe von Codes schnell realisieren und so die Entwicklungseffizienz erheblich verbessern. In diesem Artikel wird vorgestellt, wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, und es werden konkrete Codebeispiele gegeben. 1. Einführung in uniapp unia

HTML, CSS und jQuery: Erstellen Sie eine Datentabelle mit Suchfunktion HTML, CSS und jQuery: Erstellen Sie eine Datentabelle mit Suchfunktion Oct 26, 2023 am 10:03 AM

HTML, CSS und jQuery: Erstellen Sie eine Datentabelle mit Suchfunktion. In der modernen Webentwicklung ist die Datentabelle ein häufig verwendetes Element. Um Benutzern das Auffinden und Filtern von Daten zu erleichtern, ist das Hinzufügen von Suchfunktionen zu Datentabellen zu einer wesentlichen Funktion geworden. In diesem Artikel wird erläutert, wie Sie mithilfe von HTML, CSS und jQuery eine Datentabelle mit Suchfunktion erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. HTML-Struktur Zuerst müssen wir eine grundlegende HTML-Struktur erstellen, um die Datentabelle aufzunehmen

php Elasticsearch: Wie verwende ich dynamisches Mapping, um flexible Suchfunktionen zu erreichen? php Elasticsearch: Wie verwende ich dynamisches Mapping, um flexible Suchfunktionen zu erreichen? Sep 13, 2023 am 10:21 AM

PHPElasticsearch: Wie nutzt man dynamisches Mapping, um flexible Suchfunktionen zu erreichen? Einleitung: Suchfunktionen sind ein wesentlicher Bestandteil der Entwicklung moderner Anwendungen. Elasticsearch ist eine leistungsstarke Such- und Analysemaschine, die umfassende Funktionalität und flexible Datenmodellierung bietet. In diesem Artikel konzentrieren wir uns auf die Verwendung dynamischer Zuordnungen, um flexible Suchfunktionen zu erreichen. 1. Einführung in die dynamische Zuordnung In Elasticsearch ist die Zuordnung (mapp

So entwickeln Sie leistungsstarke Suchfunktionen mit PHP und Manticore Search So entwickeln Sie leistungsstarke Suchfunktionen mit PHP und Manticore Search Aug 06, 2023 am 10:13 AM

Überblick über die Entwicklung leistungsstarker Suchfunktionen mit PHP und ManticoreSearch: Suchfunktionen spielen eine entscheidende Rolle in der modernen Anwendungsentwicklung. Um effiziente und genaue Suchfunktionen zu erreichen, ist der Einsatz einer geeigneten Suchmaschine von entscheidender Bedeutung. ManticoreSearch ist eine leistungsstarke Volltextsuchmaschine, die leistungsstarke und skalierbare Suchfunktionen bietet. In diesem Artikel erfahren Sie, wie Sie mit PHP und ManticoreSearch leistungsstarke Suchfunktionen entwickeln und

So bedienen Sie die Miniprogramm-Registrierung So bedienen Sie die Miniprogramm-Registrierung Sep 13, 2023 pm 04:36 PM

Schritte zur Miniprogramm-Registrierung: 1. Erstellen Sie Kopien von Personalausweisen, Unternehmenslizenzen, juristischen Personenausweisen und anderen Archivierungsmaterialien. 2. Melden Sie sich beim Miniprogramm-Verwaltungshintergrund an. Wählen Sie „Grundeinstellungen“; 5. Geben Sie die Anmeldeinformationen ein; 6. Laden Sie die Anmeldematerialien hoch; 7. Senden Sie den Anmeldeantrag; 8. Warten Sie auf die Überprüfungsergebnisse. Wenn die Einreichung nicht bestanden wird, nehmen Sie basierend auf den Gründen Änderungen vor und den Einreichungsantrag erneut einreichen. 9. Die Folgemaßnahmen für die Einreichung sind Can.

See all articles