Redux adalah perpustakaan manajemen negara di bagian frontend aplikasi web. Status seluruh aplikasi disimpan dalam satu objek yang disebut store.

Dalam permainan redux, sesuatu yang disebut Objek yang tidak dapat diubah adalah kuncinya.

Apa yang dimaksud dengan objek yang tidak dapat diubah?

Dalam ilmu komputer, objek yang tidak dapat diubah adalah objek yang statusnya tidak dapat diubah setelah dibuat. Dengan kata lain, setelah objek yang tidak dapat diubah dibuat, nilainya tidak dapat diubah.

Objek yang tidak dapat diubah sering kali digunakan dalam situasi di mana konsistensi dan keamanan data sangat penting, seperti dalam pemrograman multi-thread atau bersamaan. Karena tidak dapat diubah, banyak thread dapat mengaksesnya dengan aman tanpa takut salah satu thread memodifikasi objek sementara thread lain mengaksesnya. Selain itu, objek yang tidak dapat diubah sering kali digunakan dalam pemrograman fungsional, yang penting untuk menghindari efek samping dan menjaga transparansi referensial.

Contoh objek yang tidak dapat diubah termasuk string, angka, dan tupel dalam banyak bahasa pemrograman. Sebaliknya, objek yang bisa diubah adalah objek yang statusnya dapat diubah setelah pembuatan, seperti daftar, kamus, dan objek dalam bahasa pemrograman berorientasi objek.

Alasan menggunakan objek yang tidak dapat diubah di redux?

Objek yang tidak dapat diubah digunakan di Redux, pustaka JavaScript populer untuk mengelola status aplikasi karena objek tersebut membantu memastikan pembaruan yang dapat diprediksi dan efisien pada pohon status.

Di Redux, negara diwakili oleh satu objek abadi yang disebut pohon negara. Ketika suatu tindakan dikirim untuk memperbarui status, fungsi peredam mengembalikan objek status baru yang didasarkan pada objek status sebelumnya dan tindakan tersebut.

Dengan menggunakan objek yang tidak dapat diubah, Redux memastikan bahwa pohon status tidak pernah diubah secara langsung. Sebaliknya, objek keadaan baru selalu dibuat, yang dapat dibandingkan dengan keadaan sebelumnya untuk menentukan apakah ada perubahan yang terjadi. Hal ini memudahkan pelacakan perubahan status, debug masalah, dan penerapan fungsi undo/redo.

Objek yang tidak dapat diubah juga membantu meningkatkan kinerja dengan memungkinkan perbandingan referensi yang cepat. Saat objek status baru dibuat, ia membagikan data sebanyak mungkin dengan objek status sebelumnya. Ini berarti bahwa banyak properti objek baru akan memiliki alamat memori yang sama dengan objek sebelumnya, sehingga memungkinkan perbandingan cepat dan mengurangi penggunaan memori.

Secara keseluruhan, penggunaan objek yang tidak dapat diubah di Redux membantu memastikan bahwa pembaruan status dapat diprediksi, efisien, dan mudah di-debug, menjadikannya pilihan populer untuk mengelola status aplikasi dalam aplikasi JavaScript.