Vue で debouce の手ぶれ補正機能を使用する方法

Vue で debouce の手ぶれ補正機能を使用する方法

1. 手ぶれ補正機能

2 つの Ajax 通信間の間隔は 2500 ミリ秒未満であってはならないと仮定すると、上記のコードは次のように書き直すことができます。

$('textarea').on('keydown', debounce(ajaxAction, 2500));

関数デバウンス(fn, delay){
  var timer = null; // タイマーを宣言する return function() {
    var コンテキスト = this;
    var args = 引数;
    タイマーをクリアします。
    タイマー = setTimeout(関数() {
      fn.apply(コンテキスト、引数);
    }、 遅れ);
  };
}

上記のコードでは、ユーザーが 2500 ミリ秒以内にキーを再度押すと、以前のタイマーがキャンセルされ、新しいタイマーが作成されます。これにより、コールバック関数の呼び出し間隔が少なくとも 2500 ミリ秒になることが保証されます。

2. Vueでdebouceの手ぶれ補正機能を使用する

最後に呼び出されてから wait ミリ秒の遅延後に func を呼び出すdebounced関数を作成します。 debounced 関数は、遅延された関数呼び出しをキャンセルする cancel メソッドと、それをすぐに呼び出すflushメソッドを提供します。 funcメソッドを呼び出す方法を決定するためのoptionsオブジェクト、遅延の前後にトリガーする方法を決定するためのoptions.leadingと|またはoptions.trailingを提供することができます。

(注意: 先に電話してから待つか、先に待ってから電話するか)。

funcが呼び出されると、 debounced関数に最後に提供された引数が渡されます。 debounced関数への後続の呼び出しは、func への最後の呼び出しの結果を返します。

Lodash debouce パラメータ:

  • func (Function) : デバウンスする関数。
  • [wait=0] (number) : 遅延するミリ秒数。
  • [options=] (Object) : オプション オブジェクト。
  • [options.leading=false] (boolean) : 遅延が始まる前に呼び出されることを指定します。
  • [options.maxWait] (number) : func が遅延できる最大値を設定します。
  • [options.trailing=true] (boolean) : 遅延が終了した後に呼び出されることを指定します。
<テンプレート>
<el-入力
    v-model="値"
    サイズ="ミニ"
    placeholder="入力してください。"
    クリア可能
    @keydown.enter="ハンドル検索"
  </el-input> ...
</テンプレート>
<スクリプト>
'lodash' から _ をインポート
エクスポートデフォルト{
データ() {
    戻り値: '' }
},
作成する() {
    this.handleSearch = _.debounce(() => {
      // リストを取得します this.getList();
    }, 300);
},
破棄する前に() {
    //この関数のアンチシェイク呼び出しをキャンセルします this.handleSearch.cancel();
},
}
</スクリプト>

Vue での debouce 手ぶれ補正機能の使い方についてはこれで終了です。Vue での debouce 手ぶれ補正機能の使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue で手ぶれ補正機能コンポーネント操作を使用する
  • Vue で携帯電話番号認証のサンプルコードを実装する (手ぶれ補正機能の適用シナリオ)

<<:  純粋な CSS3 で実装された三目並べゲーム

>>:  MySQLのジョイントクエリについて詳しく説明します

推薦する

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

スーパーバイザーを使用して nginx + tomcat コンテナを管理する例

必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際...

JavaScript関数の使い方の詳細な説明

目次1. 関数を宣言する2. 関数の呼び出し3. 関数パラメータ4. 関数の戻り値5. 議論の使用6...

Zabbix による VMware Exsi ホストの監視のグラフィカルな手順

1. 仮想化 vcenter に入り、ブラウザでログインし (クライアントは設定する場所を見つけませ...

JSネイティブ2列シャトル選択ボックスの実装例

目次いつ使うか構造的ブランチコードいつ使うか選択動作を完了するには、2 つの列間で要素を直感的に移動...

WeChatアプレットはシンプルな手書き署名コンポーネントを実装します

目次背景:必要:効果1. アイデア2. 実装1. ページとスタイル2. 初期化3. クリックすると4...

HTML で Web ページに動的な時計を書く

HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...

Nginx で Basic Auth ログイン認証を設定する方法

nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...

HTMLフロートの使用法の簡単な分析

float の使用例左サスペンション: float:left;右サスペンション: float:rig...

MySQL サーバー 5.5 の接続失敗の解決策

mysqlに接続できない問題の解決方法を参考までに紹介します。具体的な内容は以下のとおりです。昨日は...

太字の <b> と <strong> の違いの分析

私たちウェブマスターは皆、ウェブサイトを最適化する際に記事内のキーワードを太字にすることが最適化に非...

Vue の動的コンポーネントと非同期コンポーネントの詳細な理解

1. 動的コンポーネント <!DOCTYPE html> <html> &l...

JavaScript配列の組み込みメソッドの詳細な説明

目次1. Array.at() 2. Array.copyWithin() 3. 配列.entrie...

Bootstrap 3.0 学習ノート グリッドシステムの原則

前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...