Bagaimana untuk Debounce Input Pengguna dalam Angular Menggunakan RxJS?

Barbara Streisand
Lepaskan: 2024-10-23 13:17:29
asal
951 orang telah melayarinya

How to Debounce User Input in Angular Using RxJS?

Menyahlantun dengan Angular 2

AngularJS menawarkan cara yang mudah untuk menyahpantulkan model menggunakan arahan pilihan-model-ng. Walau bagaimanapun, dengan Angular, tiada cara terbina dalam untuk mencapai fungsi ini.

Menyahlantun dengan RxJS

Angular memanfaatkan RxJS untuk pengaturcaraan reaktif, menyediakan cara untuk mencipta pemerhatian yang boleh digunakan untuk pengendalian acara, strim data dan banyak lagi. RxJS menyediakan pengendali debounceTime(), yang mengeluarkan nilai hanya selepas tempoh tertentu telah berlalu sejak pelepasan terbaharu.

Contoh Menggunakan RxJS DebounceTime

Untuk melaksanakan nyahlantun dalam Sudut, ikut langkah berikut:

<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() {
    // Debounce keystroke events
    this.firstNameControl.valueChanges
      .debounceTime(1000)
      .subscribe(newValue => this.firstName = newValue);
  }
}</code>
Salin selepas log masuk

Kod ini menggunakan debounceTime(1000) untuk melambatkan pancaran nilai baharu sebanyak 1000 milisaat. Sebarang ketukan kekunci yang berlaku dalam tempoh itu tidak akan mencetuskan kemas kini segera sifat firstName.

Pertimbangan Prestasi

Menyahlantun menggunakan RxJS observables adalah cekap, kerana ia tidak mencetuskan tukar pengesanan melainkan tempoh nyahlantun tamat. Walau bagaimanapun, pertimbangkan untuk mencipta pemerhatian di luar zon Angular menggunakan NgZone.runOutsideAngular(), kerana ini boleh meningkatkan lagi prestasi.

Atas ialah kandungan terperinci Bagaimana untuk Debounce Input Pengguna dalam Angular Menggunakan RxJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan