目次
まずはエフェクトを見てみましょう
クラウド データベースはテストするデータをインポートします検索フレーム機能
ナビゲーションバーの中央に自動的にジャンプするこの機能も非常によく使用されます
https: //gitee.com/xinccc/fullstack_huoshan/tree/master/wxapp/dewu
まとめ
ホームページ WeChat アプレット ミニプログラム開発 ミニプログラムに検索機能を実装する方法の詳細な説明

ミニプログラムに検索機能を実装する方法の詳細な説明

Sep 06, 2021 pm 07:25 PM
アプレット 検索機能

ミニ プログラムの一般的な検索機能を実装するにはどうすればよいですか?次の記事では、ミニ プログラムに検索機能を実装する方法をステップごとに説明します。

ミニプログラムに検索機能を実装する方法の詳細な説明

小さなプログラムを開発する過程で、基本的には検索機能が組み込まれることになりますが、比較的インテリジェントな検索機能はどのように実装されるのでしょうか?勉強の一環として、比較的包括的な検索ボックス機能を学習しました。見てみましょう。

ミニプログラムに検索機能を実装する方法の詳細な説明

#開発の準備

    WeChat ミニ プログラム
  • Youzanvant コンポーネント ライブラリ
  • #エフェクトの表示

まずはエフェクトを見てみましょう

ミニプログラムに検索機能を実装する方法の詳細な説明事前準備

クラウド データベースはテストするデータをインポートします検索フレーム機能

ミニプログラムに検索機能を実装する方法の詳細な説明realization

ディレクトリ

indexの下に3つの新しいページを作成します。検索ボックスの最初のページ

search は特定の検索に使用されるページです

hotsearch は検索コンテンツの詳細ページ

まず、検索ボックスの 1 ページ目のインデックスのレイアウトを見てみましょう。ここでは、検索ボックスの内容を中心に紹介します。その他の内容については、ここでは説明しません。詳細はこちら

ミニプログラムに検索機能を実装する方法の詳細な説明これはindex.wxmlコードです

      <view class="search_1" bindtap="gotoSearch">
          <van-search 
          placeholder="搜索单品" disabled
          />
        </view>
      <view class="search_2">
        <view class="pic" bindtap="list" >
          <image src=""></image>
        </view>
      </view>
    </view>
ログイン後にコピー

ミニプログラムに検索機能を実装する方法の詳細な説明これは検索のsearch.wxmlコードですbox

  <view class="dewu-search">
    <view class="return" >
      <view class="return_pic" bindtap="gotoindex">
        <image src=""></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>
ログイン後にコピー

js を最初にクラウド データベースに導入する必要があります Data

    const db = wx.cloud.database();
    const dewuCollection = db.collection(&#39;dewu&#39;);
ログイン後にコピー

入力ボックスが変更されたときに関連コンテンツをポップアップするには、2 ページが必要です。入力ボックスにコンテンツが入力されている場合の場合、非表示ページが表示されます

hidden="{{ issuggest==false?'hidden':''}}"

を使用して、関連コンテンツ ページを表示するかどうかを決定します。 indexOf を使用して、e.detail (入力ボックスの内容) がクラウド データベースに存在するかどうかを確認します。存在する場合は、このデータを配列に保存し、以前に検索したものに接続します配列の場合、 wx.setStorageSync(); を使用して入力ボックス内のデータをストレージに保存し、次に wx.getStorageSync() を使用してデータを抽出します。 これは、入力ボックスにデータがある場合に表示される詳細ページです。クリックすると、製品の詳細ページにジャンプします。

ミニプログラムに検索機能を実装する方法の詳細な説明これは、検索ボックス ロジック

    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
  })
  },
ログイン後にコピー

ミニプログラムに検索機能を実装する方法の詳細な説明

wx.navigateTo

を使用して、詳細ページへのジャンプ、文字列テンプレートの追加、IDの値の決定、データを使用してページを駆動し、異なるデータを持つ同じページにジャンプします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>wx.navigateTo({ url: `../hotsearch/hotsearch?id=`+id })</pre><div class="contentsignin">ログイン後にコピー</div></div>

最後に、データを更新する必要があります

     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;);
   },
ログイン後にコピー
グローバル JSON またはローカルで使用する必要があるコンポーネントのアドレスを忘れないように注意してください。 page json

    "usingComponents": {
        "van-search":"./miniprogram_npm/@vant/weapp/search/index"
  },
ログイン後にコピー

Extension

ナビゲーションバーの中央に自動的にジャンプするこの機能も非常によく使用されます

ミニプログラムに検索機能を実装する方法の詳細な説明これはWXML コードの最も重要な部分

scroll- x="true"

ナビゲーション バーを水平方向にスライドさせます scroll-with-animation="true" スライドをアニメーションさせます。 scroll-into-view="{{scrollTop }}"<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'> &lt;scroll-view scroll-x=&quot;true&quot; scroll-with-animation=&quot;true&quot; style=&quot;width:100%;&quot; class=&quot;scroll-view_H &quot; scroll-into-view=&quot;{{scrollTop}}&quot;&gt; &lt;view wx:for=&quot;{{goodsNav}}&quot; wx:key=&quot;index&quot; id=&quot;{{item.id}}&quot; data-index=&quot;{{index}}&quot; data-type=&quot;{{item.type}}&quot; bindtap=&quot;changegoods&quot; class=&quot;scroll-view-item_H {{activeNavIndex == index?&amp;#39;active&amp;#39;: &amp;#39;&amp;#39;}} &quot; &gt; &lt;text&gt;{{item.text}}&lt;/text&gt; &lt;/view&gt; &lt;/scroll-view&gt; &lt;/view&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>これはナビゲーション バーにバインドされたイベントです

let {index, type} = e.currentTarget.dataset ;

インデックスとタイプを抽出して設定します。カウントは最初のいくつかとして使用され、その後 id に結合され、id の値が # に渡されます。 ##scrollTop、ナビゲーション バーが scrollTop# にジャンプします ##この値、この値は中央にあります<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'> console.log(e); let {index, type} = e.currentTarget.dataset; console.log(&quot;index=&quot; +index, &quot;type=&quot;+type); this.setData({ activeNavIndex:index }) if (type == &amp;#39;recommend&amp;#39;) { this.setData({ goodsList: this.data.recommend }) } else { let goods = this.data.recommend.filter((good) =&gt; good.camptype == type ) this.setData({ goodsList: goods }) //console.log(this.data.goods) } var index1 = e.currentTarget.dataset.index; var count = 2; var id = &quot;item&quot;+(index1-count);//拼接id if(count == 2 &amp;&amp; index1 &lt; 3 || count == 3 &amp;&amp; index1 &lt; 2 || count == 4 &amp;&amp; index1 &lt; 3){ id = &quot;item0&quot;; } console.log(&quot;下标&quot;,index1,&quot;---分类id名称&quot;,id) this.setData({ scrollTop: id }) },</pre><div class="contentsignin">ログイン後にコピー</div></div>wxss を追加すると効果が得られます ただし、このように書くと問題があり、表示内容が6などの偶数の場合、正しく真ん中にジャンプできず、3の位置にジャンプしてしまい、若干のズレが生じます。 . この問題はまだ解決していませんが、解決方法を知っている人はいますか? <code>#ソース コード #ここにプロジェクトの完全なソース コードがあります。コードの一部は上に示しています。興味がある場合は、完全なソース コードを確認してください

https: //gitee.com/xinccc/fullstack_huoshan/tree/master/wxapp/dewu

まとめ

少し完成度の高いプロジェクトを書くのは初めてです。ここでは、開発プロセスで遭遇した主な困難を主に紹介します。全体的に困難な点はありませんが、それは意味します。このような経験をしたことで、自分にはまだまだ学ぶことがたくさんあると実感しました。また、困ったときに助けてくれた先生やクラスメートにも感謝しています。この記事が届いたと感じたらぜひ、「いいね!」をしていただければ大変励みになります。アドバイスがございましたら、コメント欄で一緒に議論し、学んでいただければ幸いです。

プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !

以上がミニプログラムに検索機能を実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python を使用して WeChat アプレットを開発する Python を使用して WeChat アプレットを開発する Jun 17, 2023 pm 06:34 PM

モバイル インターネット技術とスマートフォンの普及により、WeChat は人々の生活に欠かせないアプリケーションになりました。 WeChat ミニ プログラムを使用すると、アプリケーションをダウンロードしてインストールすることなく、ミニ プログラムを直接使用して、いくつかの簡単なニーズを解決できます。この記事では、Python を使用して WeChat アプレットを開発する方法を紹介します。 1. 準備 Python を使用して WeChat アプレットを開発する前に、関連する Python ライブラリをインストールする必要があります。ここでは、wxpy と itchat の 2 つのライブラリを使用することをお勧めします。 wxpy は WeChat マシンです

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: &lt;!--index.wxml- ->&l

アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の当サイトのニュースによると、今年5月27日、アント・グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協会からコレクションを収集する レア文字は、レア文字ライブラリを補完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します。現在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認識・入力されなかった珍しい文字の画像を送信し、確認後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。当サイトでは、発音が不明瞭な珍しい単語を対象とした最新の単語分割入力方法をミニプログラムで体験できることに注目しました。ユーザー解体

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

HTML、CSS、jQuery: 検索機能を備えたデータテーブルを作成する HTML、CSS、jQuery: 検索機能を備えたデータテーブルを作成する Oct 26, 2023 am 10:03 AM

HTML、CSS、jQuery: 検索機能を備えたデータテーブルを作成する 現代の Web 開発において、データテーブルは頻繁に使用される要素です。ユーザーがデータを見つけてフィルタリングしやすくするために、データ テーブルに検索機能を追加することは不可欠な機能になっています。この記事では、HTML、CSS、jQueryを使って検索機能付きのデータテーブルを作成する方法と具体的なコード例を紹介します。 1. HTML 構造 まず、データテーブルを収容するための基本的な HTML 構造を作成する必要があります。

php Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか? php Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか? Sep 13, 2023 am 10:21 AM

PHPElasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか?はじめに: 検索機能は、最新のアプリケーションの開発に不可欠な部分です。 Elasticsearch は、豊富な機能と柔軟なデータ モデリングを提供する強力な検索および分析エンジンです。この記事では、動的マッピングを使用して柔軟な検索機能を実現する方法に焦点を当てます。 1. 動的マッピングの概要 Elasticsearch では、マッピング (mapp

PHP と Manticore Search を使用して強力な検索機能を開発する方法 PHP と Manticore Search を使用して強力な検索機能を開発する方法 Aug 06, 2023 am 10:13 AM

PHP と ManticoreSearch を使用して強力な検索機能を開発する方法の概要: 検索機能は、最新のアプリケーション開発において重要な役割を果たします。効率的かつ正確な検索機能を実現するには、適切な検索エンジンを利用することが重要です。 ManticoreSearch は、高性能でスケーラブルな検索機能を提供する強力な全文検索エンジンです。この記事では、PHP と ManticoreSearch を使用して強力な検索機能を開発する方法と、

ミニプログラム登録の操作方法 ミニプログラム登録の操作方法 Sep 13, 2023 pm 04:36 PM

ミニ プログラムの登録操作手順: 1. 個人 ID カード、法人営業許可証、法人 ID カードおよびその他の提出資料のコピーを準備します; 2. ミニ プログラム管理のバックグラウンドにログインします; 3. ミニ プログラム設定ページに入ります; 4. 「基本設定」を選択; 5. 出願情報を入力; 6. 出願資料をアップロード; 7. 出願申請を送信; 8. 審査結果を待ちます。出願が不合格の場合は、理由に応じて修正してください9. 出願のフォローアップ操作は可能です。

See all articles