1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け取ったら、すぐに作業を開始します。まずはレンダリングをご覧ください。ソースコードは小さなプログラムコードスニペットにまとめられ、GitHub に公開されています。記事の下部にソースコードへのリンクがあります。 2. アイデアブロガーが最初に考えたのは、split を使うことでした。検索されたキーワードに応じて、バックグラウンドで返されたデータを処理し、indexOf でキーワードを見つけ、各単語に deep フィールドを追加しました。deep が true の場合は強調表示され、false の場合は通常のままになります。小さなプログラムなので、OP はそれを直接ハイライト コンポーネントにしました。コードは非常にシンプルで、実装手順は次のとおりです。 3. コードロジックシミュレーションデータは以下のとおりです リスト:[ 「武漢大学」、 「華中科技大学」 「華中師範大学」 「中南経済法大学」 「中国地質大学」 「武漢理工大学」 「華中農業大学」 「武漢理工大学」 ]、 検索キーでフィルタリングされたデータを格納するために、データに空の配列が定義されます。 filterList:[], //フィルター済み wxml と検索方法 // wxml <view class="search_box"> <input type="text" placeholder="武漢の985/211大学を入力してください" bindinput="searchValue" class="search"/> </ビュー> // 検索メソッド searchValue(e){ val = e.detail.value; とします。 this.setData({ 値:val }) 長さが0より大きい場合 this.setData({ フィルターリスト:[] }) arr = [] とします。 for(let i = 0;i < this.data.list.length;i++){ if(this.data.list[i].indexOf(val) > -1){ arr.push(このデータリスト[i]) } } this.setData({ フィルターリスト: arr }) }それ以外{ this.setData({ フィルターリスト: [] }) } } ハイライトコンポーネントのハイライトを定義します "コンポーネントの使用": { "ハイライト":"../../components/ハイライト/ハイライト" } ページ内の各項目とキーパラメータをコンポーネントに渡す <view class="list_li" wx:for="{{ filterList }}" wx:key="index" data-index="{{ index }}" bindtap="pitchOn"> <ハイライトテキスト="{{項目}}" キー="{{値}}" /> </ビュー> コンポーネントで受信 プロパティ: テキスト:文字列、 鍵:{ タイプ:文字列、 価値:''、 オブザーバー:'_changeText' } } コンポーネントの初期データ データ: { highlightList:[], //処理されたデータ} コンポーネントのwxml <text class="{{ item.deep ? 'green' : '' }}" wx:for="{{ highlightList }}" wx:key="index">{{ item.val }}</text> コンポーネントハイライトデータ処理 // 空でないfilter_changeText(e){ e.length > 0 && this.properties.text.indexOf(e) > -1 の場合{ this._filterHighlight(this.properties.text, e); } }, /** * キーワードの強調表示* @param { String } text - テキスト* @param { String } key - キーワード*/ _filterHighlight(テキスト、キー){ textList を text.split(""); とします。 keyList を key.split(""); とします。 リストを [] にします。 for(let i = 0;i < textList.length;i++){ obj = { 深い:偽、 val:テキストリスト[i] } リストをプッシュします。 }; for(let k = 0; k < keyList.length; k++){ リスト.forEach(項目 => { if(item.val === keyList[k]){ アイテムの深さを true に設定します。 } }) } this.setData({ ハイライトリスト:リスト }) } ソースコードのGitHubアドレス: https://github.com/pdd11997110103/ComponentWarehouse WeChatミニプログラムで検索キーワードのハイライトを実装するためのサンプルコードに関するこの記事はこれで終わりです。より関連性の高いミニプログラムの検索キーワードのハイライトコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: xtrabackup による MySQL データベースのバックアップと復元
>>: Telnet は Alpine イメージの busybox-extras に移動されました
目次概要ファイル記述子同期、非同期、Promise同期書き込み非同期書き込み(推奨)約束の書き方...
まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...
最近、NestJs フレームワークを学び始めました。学習コストは他のフレームワークよりもはるかに高く...
ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...
目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...
JavaScriptコントロールを使用したくない場合は、次の方法を試してください。 Safariブラ...
目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...
ほとんどのアプリケーション シナリオでは、緊急時に備えて重要なデータをバックアップし、安全な場所に保...
1. Vueルーティングの権限制御には一般的に2つの方法がありますa. ルーティングメタ情報(メタ)...
この記事の例では、下部のポップアップウィンドウで複数選択を実装するためのVueの具体的なコードを共有...
MySQL 8.0.13 のインストールと設定方法を皆さんと共有したいと思います。お役に立てれば幸...
目次1 トランザクションの同時実行で発生する問題1.1 ダーティリード1.2 繰り返し不可能な読み取...
1. イベントの簡単な紹介イベントは、MySQL が特定の時間に呼び出す手続き型データベース オブジ...
目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...
目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...