首頁 > web前端 > js教程 > 主體

如何在 Angular 2 中實現去抖?

Patricia Arquette
發布: 2024-10-23 10:32:01
原創
554 人瀏覽過

How to Implement Debouncing in Angular 2 ?

Angular 2 Debouncing

Debouncing 是編程中使用的一種技術,用於延遲任務的執行,直到指定的時間段過去後對該任務的最近調用。在 Angular 中,去抖動可透過減少應用程式執行昂貴操作的次數來提高應用程式的效能。

在 AngularJS 中,去抖動是使用 ng-model-options 指令處理的。然而,在 Angular 2 中,沒有內建的去抖動功能。相反,您可以在表單控制項的 valueChanges 可觀察值上使用 RxJS debounceTime() 運算子。

以下是如何在 Angular 2 中對表單控制項進行去抖動的範例:

<code class="typescript">import {Component}   from '@angular/core';
import {FormControl} from '@angular/forms';
import {Observable}  from 'rxjs/Observable';
import 'rxjs/add/operator/debounceTime';

@Component({
  selector: 'my-app',
  template: `<input type=text [value]="firstName" [formControl]="firstNameControl">
    <br>{{firstName}}`
})
export class AppComponent {
  firstName        = 'Name';
  firstNameControl = new FormControl();

  ngOnInit() {
    this.firstNameControl.valueChanges
      .debounceTime(1000)
      .subscribe(newValue => this.firstName = newValue);
  }
}</code>
登入後複製

In在這個範例中,我們先建立一個新的FormControl,名為firstNameControl。然後,我們訂閱表單控制項的 valueChanges observable。我們使用 debounceTime() 運算子來延遲回呼函數的執行,直到自上次輸入值變更以來經過 1000 毫秒。

debounceTime() 運算子只是許多 RxJS 運算子之一用於操縱和過濾可觀測值。有關 RxJS 運算子的更多信息,請參閱 RxJS 文件。

以上是如何在 Angular 2 中實現去抖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!