Vueでファジークエリを実装する方法の簡単な例

Vueでファジークエリを実装する方法の簡単な例

序文

いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供することです。つまり、ユーザーは入力中にプロンプ​​ト情報(実際にはクエリで見つかった一致情報)を見ることができます。Baiduの検索機能は、ファジークエリの良い例です。実際、ファジークエリの原理は、oninputイベントを入力ボックスにバインドしてユーザーの入力を監視し、ユーザーが入力ボックスに情報を入力するたびにイベントがトリガーされてクエリが実行され、リアルタイムに表示されることです。原理は非常に単純ですが、実装にはいくつかの問題があります。文字が入力されるたびにイベントがトリガーされると考えることができます。長いメッセージを入力する必要がある場合、クエリを複数回トリガーする必要がありますか? ajax が連続して複数回トリガーされ、メソッド本体に DOM 要素を操作するメソッドがある場合、ブラウザは必然的に一時停止状態になったり、クラッシュしたりします。この問題を解決する方法はあるのでしょうか?答えは「はい」です

Vueはファジークエリを実装する

ウォッチと計算を使用してVueでファジークエリを実装する

聴取法は計算法でも実施できますが、聴取法の方が複雑なので計算法を使用することをお勧めします。

まず次のコード実装を見てみましょう

計算によって実装

監視による実装

HTML コード <div id="root">
        <h2>スタッフリスト</h2>
        <input type="text" placeholder="お名前を入力してください" v-model="keyWord">
        <ul>
            <li v-for="(p,index) filPersons の" :key="index">
                {{p.name}}-{{p.age}}-{{p.sex}}
            </li>
        </ul>
    </div>
スクリプトコード new Vue({
        el:"#ルート",
        データ:{
            キーワード:''、
            人数:

                {id:'001',名前:'馬東梅',年齢:18,性別:'女性'},
                {id:'002',名前:'周冬雨',年齢:19,性別:'女性'},
                {id:'003',名前:'ジェイ・チョウ',年齢:21,性別:'男性'},
                {id:'004'、名前:'デリック・ワン'、年齢:22、性別:'男性'}
        ]、
        },
        計算:{
            filPersons(){
                return this.persons.filter((p)=>{//フィルタリングされた配列を返します return p.name.indexOf(this.keyWord) !==-1
                })//filter はキーワードを含まないケースを除外するフィルタリング関数です}
        }
    })

ウォッチ関数を使用してボックスの値が変化するかどうかを監視します

HTMLコードは変更されません スクリプトコード new Vue({
        el:"#ルート",
        データ:{
            キーワード:''、
            人数:

                {id:'001',名前:'馬東梅',年齢:18,性別:'女性'},
                {id:'002',名前:'周冬雨',年齢:19,性別:'女性'},
                {id:'003',名前:'ジェイ・チョウ',年齢:21,性別:'男性'},
                {id:'004'、名前:'デリック・ワン'、年齢:22、性別:'男性'}
        ]、
        filPersons:[//これが存在しない場合、personsの値を元の値に戻すことはできません]
        
        },
        時計:{
            キーワード:{
                immediate:true, //ボックスの値が変更されていないすべての状況を表示するには、次の関数を実行します handler(val){
                    this.filPersons = this.persons.filter((p)=>{
                    p.name.indexOf(val) !==-1 を返す
                })
                }
            }
            
        }
    })

要約する

Vue のファジークエリ実装に関するこの記事はこれで終わりです。Vue のファジークエリ実装に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • VueはInput入力ボックスのファジークエリメソッドを実装します
  • Vueは入力ボックスのファジークエリのサンプルコードを実装します(スロットリング機能の適用シナリオ)
  • Vue2 フィルター ファジー クエリ メソッド
  • Vue 入力ボックスのファジークエリのサンプルコード
  • Vue はファジークエリを実装します - MySQL データベースデータ

<<:  MySQL データベース開発の 36 の原則 (要約)

>>:  Linux md5sumコマンドの使い方

推薦する

VMware Workstation 仮想マシンのインストール操作方法

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

新しいウィンドウで開くジャンプメニュー、window.open の使い方の紹介

コードをコピーコードは次のとおりです。 <前> <div> <sele...

Dockerfile に基づいて Tomcat イメージを構築する方法

Dockerfile は Docker イメージを構築するために使用されるファイルです。コマンドパラ...

MySQL 5.7 のインストールと設定のチュートリアル

この記事では、参考までにMySQLのインストールと設定のチュートリアルを紹介します。具体的な内容は次...

UTF8 でエンコードされた Web ページにファイルが含まれている場合の、ページの前の空白行の解決方法

<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレー...

Docker の MySQL 時間とシステム時間の不一致の問題を解決する

最近、Docker に MySQL をインストールしたところ、データベースの時刻がシステム時刻と 8...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

MySQLの共通関数を使用してJSONを処理する方法

公式ドキュメント: JSON 関数名前説明JSON_APPEND() JSONドキュメントにデータを...

Docker での環境変数の使用とよくある問題の解決策

序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...

SQL インジェクションの詳細

1. SQL インジェクションとは何ですか? SQL インジェクションは、入力パラメータに SQL ...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...

CSS 複合セレクタの具体的な使用法

交差点セレクター交差セレクターは、直接接続された 2 つのセレクターで構成されます。最初のセレクター...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

CSS と Bootstrap アイコンを使用して、上下にジャンプするインジケーター矢印のアニメーション効果を作成します。

ページが非常に長い場合は、下にさらにコンテンツがあることをユーザーに知らせるために矢印が必要になるこ...