Menyahlantun dalam Sudut 2
Menyahlantun ialah teknik yang digunakan untuk mengurangkan kekerapan pemprosesan acara. Dalam konteks aplikasi Angular, kami mungkin ingin menyahpantulkan peristiwa seperti ketukan kekunci atau saiz semula tetingkap untuk mengelakkan pengiraan atau kemas kini data yang tidak diperlukan.
Menggunakan RxJS Observables
Dengan Sudut 2 dan kemudian, kita boleh memanfaatkan pemerhatian dan pengendali RxJS untuk nyahlantun. Berikut ialah contoh:
<code class="typescript">import { debounceTime } from 'rxjs/operators'; formControl.valueChanges .pipe( debounceTime(1000) // delay values by 1 second ) .subscribe((newValue) => { // do something with the debounced value });</code>
Menyahlantun dengan NgZone
Pendekatan lain ialah menggunakan NgZone untuk mengawal zon di mana pendengar acara beroperasi. Ini boleh membantu mengelakkan pencetus pengesanan perubahan yang tidak perlu:
<code class="typescript">ngOnInit() { this.ngZone.runOutsideAngular(() => { this.keyupSub = Observable.fromEvent(this.inputElRef.nativeElement, 'keyup') .debounceTime(1000) .subscribe((keyboardEvent) => { this.firstName = keyboardEvent.target.value; this.cdref.detectChanges(); }); }); }</code>
Kesimpulan
Debouncing dalam Angular 2 menyediakan cara untuk mengoptimumkan pengendalian acara dan meningkatkan prestasi. Dengan menggunakan RxJS observables dan NgZone, kami boleh mencapai nyahlantun yang berkesan dan mengekalkan kawalan ke atas pengesanan perubahan.
Atas ialah kandungan terperinci Bolehkah Debouncing dalam Aplikasi Sudut Meningkatkan Pengendalian Acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!