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.
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.
Pengurusan Negeri Berasaskan Perkhidmatan: Perkhidmatan boleh digunakan untuk mencipta penyelesaian pengurusan negeri berpusat. Tetapi prestasi dan kebolehskalaan aplikasi akan terjejas berikutan pendekatan ini.
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.
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.
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
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.
Langkah 3: Menghantar Tindakan
Kami menghantar tindakan dengan memanggil kaedah penghantaran kedai yang menghantar tindakan kepadanya.
Langkah 4: Mencipta pemilih
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.
Akhir sekali, kami perlu menambah todoReducer dalam import Modul Apl kami supaya ia tersedia di seluruh aplikasi.
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!