ngRx Store dalam Angular

DDD
Lepaskan: 2024-09-19 02:18:38
asal
526 orang telah melayarinya

Sebelum saya memulakan, cerita latar belakang kecil. Jadi, beberapa minggu yang lalu, terdapat keperluan dalam projek sudut yang saya sedang kerjakan, di mana saya perlu menyimpan sekeping data supaya beberapa komponen lain boleh menggunakannya. Naluri React saya mencadangkan saya menggunakan beberapa versi API konteks sudut yang membawa saya kepada 3 cara sudut mengurus keadaan dan memastikan data tetap utuh.

  1. Keadaan Komponen: Untuk aplikasi atau komponen Mudah dengan data kongsi minimum, kami boleh mengurus keadaan dalam komponen individu menggunakan sifat komponen Angular dan pengikatan peristiwa. Ini jelas di luar liga kerana saya perlu berkongsi data merentas berbilang komponen.

  2. Pengurusan Negeri Berasaskan Perkhidmatan: Perkhidmatan boleh digunakan untuk mencipta penyelesaian pengurusan negeri berpusat. Tetapi prestasi dan kebolehskalaan aplikasi akan terjejas berikutan pendekatan ini.

  3. Stor ngRx: Kedai ngRx menyediakan keupayaan pengurusan negeri berpusat. NGRX menggunakan pemerhatian dan tindakan RxJS untuk mengurus keadaan.

Daripada tiga Kedai ngRx nampaknya yang paling sesuai untuk digunakan.

Melaksanakan Kedai ngRx:

Untuk lebih memahami pelaksanaan ngRx, pertama sekali kita perlu memahami cara ngRx berfungsi sejak awal.

Aliran bermula dari komponen. Perkara yang baik tentang ngRx ialah komponen kami tidak perlu tahu cara mengurus negeri. Satu-satunya perkara yang dibimbangkan ialah menghantar tindakan untuk memaklumkan sesuatu berlaku (peristiwa) seperti pengguna mengklik butang padam.

ngRx Store in Angular

Pada ketika ini pengurang mula bermain. Reducer bertanggungjawab untuk menentukan bagaimana tindakan tertentu harus mengubah keadaan. Biasanya kami mempunyai pengurang untuk setiap entiti yang kami ingin uruskan negeri. Jadi, Pengurang mengesan semua tindakan yang dihantar dalam apl dan tentukan cara keadaan itu harus diubah suai dan setelah diubah suai, menyimpan keadaan yang dikemas kini dalam Gedung ngRx (yang merupakan kedai global untuk semua negeri di seluruh aplikasi).

Akhir sekali, apabila komponen ingin mengakses kedai, komponen menggunakan pemilih untuk menarik keadaan yang diperlukan daripada kedai.

Sekarang mari kita kotorkan tangan kita (sebenarnya saya) dan laksanakan kedai untuk aplikasi Todo.

Langkah 1: Mencipta tindakan
ngRx Store in Angular

Di dalam kaedah createAction, kami menghantar dua parameter - rentetan unik yang akan digunakan untuk membezakan tindakan, satu lagi ialah muatan yang ingin kami hantar (pilihan).

Langkah 2: Mencipta Pengurangan
Dalam pengurang, kami melepasi keadaan awal dan tugas yang perlu dilakukan semasa menghantar tindakan tertentu.

ngRx Store in Angular

Langkah 3: Menghantar Tindakan
Kami menghantar tindakan dengan memanggil kaedah penghantaran kedai yang menghantar tindakan kepadanya.

ngRx Store in Angular

Langkah 4: Mencipta pemilih

ngRx Store in Angular

AppState merujuk kepada stor pusat untuk keseluruhan aplikasi dari mana kami memilih keadaan todo. Sekarang kita boleh mula menggunakan data stor seperti yang saya lakukan dalam baris no kod Tindakan Penghantaran. 11.

ngRx Store in Angular

Akhir sekali, kami perlu menambah todoReducer dalam import Modul Apl kami supaya ia tersedia di seluruh aplikasi.

Kesimpulan

Dalam blog ini, saya meringkaskan dan menerangkan kedai ngRx secara terperinci, cara ia berfungsi dan bagaimana kita boleh melaksanakannya dalam aplikasi kita. Kedai ngRx boleh menjadi sangat berguna apabila aplikasi berkembang, untuk menyimpan data dan mengaksesnya merentas komponen yang berbeza. Semoga ia membantu ;)

Atas ialah kandungan terperinci ngRx Store dalam Angular. 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
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!