Rumah > hujung hadapan web > tutorial js > Buka Potensi Penuh Angular Dengan Pengendali xJS Ini

Buka Potensi Penuh Angular Dengan Pengendali xJS Ini

Linda Hamilton
Lepaskan: 2024-12-29 16:16:11
asal
864 orang telah melayarinya

Unlock Angular

5 Operator RxJS yang Anda Tidak Tahu yang Anda Perlukan (Sehingga Sekarang!)

Pengaturcaraan reaktif telah mengubah cara kami menangani data tak segerak dalam JavaScript. RxJS (Sambungan Reaktif untuk JavaScript) ialah pustaka berkuasa yang menjadikan kerja dengan aliran data menjadi mudah. Walaupun pengendali seperti peta, penapis dan mergeMap biasanya digunakan, RxJS mempunyai banyak permata tersembunyi yang boleh memudahkan logik kompleks. Panduan ini memperkenalkan lima pengendali RxJS yang kurang dikenali, menerangkan kes penggunaan mereka dan cara melaksanakannya langkah demi langkah.


Apakah Pengendali RxJS?

Pengendali RxJS ialah fungsi yang membolehkan anda mengubah, menapis atau menggabungkan yang boleh diperhatikan dalam pelbagai cara. Mereka menjadikan pengendalian strim tak segerak lebih deklaratif dan intuitif. Dengan merantai operator, anda boleh membina aliran kerja yang teguh dan reaktif.


Mengapa Menggunakan Operator yang Kurang Dikenali?

Sesetengah operator dalam RxJS menyelesaikan masalah yang sangat spesifik atau meningkatkan kebolehbacaan dan prestasi kod. Mempelajari permata tersembunyi ini boleh menjadikan kod anda lebih cekap dan elegan.


1. partition: Membelah Aliran

Apakah partition?

Operator partition digunakan untuk memisahkan satu boleh diperhatikan kepada dua boleh diperhatikan berdasarkan predikat. Satu yang boleh diperhatikan memancarkan nilai yang memenuhi predikat, dan yang lain memancarkan selebihnya.

Bila Untuk Menggunakannya?

Gunakan partition apabila anda perlu mengendalikan jenis data yang berbeza dalam strim berasingan, seperti ralat penapisan atau memisahkan nombor genap dan ganjil.

Contoh: Pembahagian Nombor Genap dan Nombor Ganjil

Langkah 1: Import Operator RxJS Diperlukan

import { from } from 'rxjs';
import { partition } from 'rxjs/operators';
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Buat Observable

const numbers$ = from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Gunakan partition

const [even$, odd$] = partition(numbers$, (num) => num % 2 === 0);
Salin selepas log masuk
Salin selepas log masuk

Langkah 4: Langgan Kedua-dua Strim

even$.subscribe((num) => console.log(`Even: ${num}`));
odd$.subscribe((num) => console.log(`Odd: ${num}`));
Salin selepas log masuk
Salin selepas log masuk

Keluaran

Even: 2  
Even: 4  
Even: 6  
Even: 8  
Odd: 1  
Odd: 3  
Odd: 5  
Odd: 7  
Odd: 9  
Salin selepas log masuk
Salin selepas log masuk

Bawa Pulang Utama

partition memudahkan logik yang memerlukan berbilang operator penapis.


2. combineLatestWith: Menggabungkan Nilai Terkini

Apakah itu combineLatestWith?

Pengendali ini menggabungkan nilai terkini daripada berbilang pemerhatian kepada satu pemerhatian.

Bila Untuk Menggunakannya?

Gunakan combineLatestWith apabila anda perlu bertindak balas terhadap perubahan dalam berbilang strim serentak, seperti menggabungkan input pengguna dengan data masa nyata.

Contoh: Menggabungkan Input Pengguna dan Data API

Langkah 1: Import Operator RxJS Diperlukan

import { from } from 'rxjs';
import { partition } from 'rxjs/operators';
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Cipta Boleh Diperhatikan

const numbers$ = from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Gabungkan Strim

const [even$, odd$] = partition(numbers$, (num) => num % 2 === 0);
Salin selepas log masuk
Salin selepas log masuk

Keluaran

even$.subscribe((num) => console.log(`Even: ${num}`));
odd$.subscribe((num) => console.log(`Odd: ${num}`));
Salin selepas log masuk
Salin selepas log masuk

Bawa Pulang Utama

combineLatestWith sangat bagus untuk menyegerakkan berbilang strim dalam masa nyata.


3. audit: Pendikit Dengan Ketepatan

Apakah itu audit?

Pengendali audit mengeluarkan nilai terkini daripada sumber yang boleh diperhatikan selepas tempoh tertentu.

Bila Untuk Menggunakannya?

Gunakan audit apabila anda ingin mengawal pelepasan, seperti semasa acara seret dan lepas atau menatal.

Contoh: Memancarkan Peristiwa Tatal

Langkah 1: Import Operator RxJS Diperlukan

Even: 2  
Even: 4  
Even: 6  
Even: 8  
Odd: 1  
Odd: 3  
Odd: 5  
Odd: 7  
Odd: 9  
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Buat Tatal Boleh Diperhatikan

import { fromEvent, of } from 'rxjs';
import { combineLatestWith } from 'rxjs/operators';
Salin selepas log masuk

Langkah 3: Gunakan audit

const input$ = fromEvent(document.getElementById('input'), 'input');
const apiData$ = of({ name: 'John Doe', age: 30 });
Salin selepas log masuk

Keluaran

input$
  .pipe(combineLatestWith(apiData$))
  .subscribe(([event, data]) => {
    console.log(`Input: ${event.target.value}, API Data: ${JSON.stringify(data)}`);
  });
Salin selepas log masuk

Bawa Pulang Utama

audit memastikan pendikitan yang tepat tanpa kehilangan nilai terkini.


4. kembangkan: Boleh Cerap Rekursif

Apa itu kembangkan?

Pengendali kembangkan secara rekursif mengunjurkan setiap nilai yang dipancarkan ke dalam pemerhatian baharu.

Bila Untuk Menggunakannya?

Gunakan kembangkan untuk senario seperti panggilan API rekursif atau traversal pokok.

Contoh: Mengambil Data Penomboran

Langkah 1: Import Operator RxJS Diperlukan

Input: Hello, API Data: {"name":"John Doe","age":30}  
Salin selepas log masuk

Langkah 2: Simulasikan Panggilan API

import { fromEvent, interval } from 'rxjs';
import { audit } from 'rxjs/operators';
Salin selepas log masuk

Langkah 3: Gunakan kembangkan

const scroll$ = fromEvent(window, 'scroll');
Salin selepas log masuk

Keluaran

scroll$
  .pipe(audit(() => interval(1000)))
  .subscribe(() => console.log('Scrolled!'));
Salin selepas log masuk

Bawa Pulang Utama

kembangkan sesuai untuk mengendalikan operasi rekursif dengan elegan.


5. kumpulanOleh: Menganjur Aliran

Apakah groupBy?

Pengendali groupBy membahagikan yang boleh diperhatikan kepada berbilang yang boleh diperhatikan, dikumpulkan mengikut kunci yang ditentukan.

Bila Untuk Menggunakannya?

Gunakan groupBy apabila anda perlu mengkategorikan data secara dinamik, seperti menyusun log mengikut keterukan.

Contoh: Log Kumpulan

Langkah 1: Import Operator RxJS Diperlukan

Scrolled!  
Scrolled!  
Salin selepas log masuk

Langkah 2: Buat Log Boleh Diperhatikan

import { of } from 'rxjs';
import { expand, take } from 'rxjs/operators';
Salin selepas log masuk

Langkah 3: Gunakan groupBy

const fetchPage = (page) => of(`Page ${page}`);
Salin selepas log masuk

Keluaran

fetchPage(1)
  .pipe(
    expand((page) => (page < 5 ? fetchPage(page + 1) : of())),
    take(5)
  )
  .subscribe((data) => console.log(data));
Salin selepas log masuk

Bawa Pulang Utama

groupBy memudahkan penyusunan data mengikut kategori secara dinamik.


Soalan Lazim

Apakah Pengendali RxJS yang Paling Biasa?

Pengendali seperti peta, penapis dan mergeMap digunakan secara meluas untuk mengubah dan menapis strim data.

Bagaimana Saya Memilih Operator yang Tepat?

Pilih operator berdasarkan keperluan aliran data anda. Gunakan partition untuk membelah, combineLatestWith untuk penyegerakan dan groupBy untuk pengkategorian.

Bolehkah Operator Ini Digabungkan?

Ya, anda boleh merantai operator ini untuk membina aliran kerja yang kompleks, seperti menggabungkan partition dengan kembangan untuk logik lanjutan.


Mempelajari lima operator RxJS ini akan membantu anda menulis kod reaktif yang lebih bersih dan cekap. Mula bereksperimen dengan contoh ini dan lihat aplikasi Angular anda menjadi lebih dinamik dan berkuasa!

Atas ialah kandungan terperinci Buka Potensi Penuh Angular Dengan Pengendali xJS Ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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