Bagaimana untuk Mengurus Peristiwa Input dengan Berkesan dalam Angular 2 Menggunakan RxJS?

DDD
Lepaskan: 2024-10-23 10:28:01
asal
185 orang telah melayarinya

How to Effectively Manage Input Events in Angular 2  Using RxJS?

Mengurus Peristiwa Input dalam Angular 2

Dalam AngularJS, pembangun boleh menggunakan arahan ng-model-options untuk menyahpantun kemas kini model input. Dalam Angular 2 , kefungsian serupa tersedia melalui penggunaan operator RxJS.

Menyahlantun dengan RxJS

Untuk nyahlantun model dalam Angular 2 , manfaatkan masa debounce() operator pada nilai kawalan borang yang boleh diperhatikan. Pengendali ini menangguhkan pelepasan nilai seterusnya sehingga masa yang ditentukan berlalu selepas peristiwa terakhir.


import { debounceTime } daripada 'rxjs/operators';

formCtrlSub = this. firstNameControl.valueChanges

.pipe(
    debounceTime(1000)
)
.subscribe(newValue => this.firstName = newValue);
Salin selepas log masuk

Acara Pendikit

Anda juga boleh mendikit acara, seperti mengubah saiz acara, untuk mengelakkan kemas kini yang berlebihan. Pengendali throttleTime() memastikan bahawa hanya satu nilai dipancarkan dalam tetingkap masa yang ditentukan.

<br>import { throttleTime } daripada 'rxjs/operators';</p>
<p>resizeSub = Observable.fromEvent(tetingkap, 'ubah saiz')</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">.pipe(
    throttleTime(200)
)
.subscribe(e => {
    console.log('resize event', e);
    this.firstName += '*';  // change something to show it worked
});
Salin selepas log masuk

Pengendalian Acara yang Cekap

Pendekatan di atas mencetuskan perubahan pengesanan pada setiap acara, walaupun apabila ia dinyahlantunkan atau pendikit. Untuk pengendalian acara yang lebih cekap, pertimbangkan untuk mencipta RxJS Observables di luar zon Angular, mencetuskan pengesanan perubahan secara manual dalam kaedah panggil balik langgan.

<br>ngAfterViewInit() {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">this.ngZone.runOutsideAngular(() => {
    this.keyupSub = Observable.fromEvent(this.inputElRef.nativeElement, 'keyup')
        ...
    this.resizeSub = Observable.fromEvent(window, 'resize')
        ...
});
Salin selepas log masuk

}

Dengan menggunakan pengendali RxJS dan pencetus pengesanan perubahan proaktif, anda boleh mengurus peristiwa input dengan berkesan dalam Angular 2 , memastikan interaksi pengguna yang lancar dan responsif.

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

sumber:php
Artikel sebelumnya:Bagaimana untuk Melumpuhkan Butang HTML Menggunakan JavaScript? Artikel seterusnya:Bagaimana untuk Melaksanakan Debouncing dalam Angular 2?
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
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!