Top 5 State Management React


Manajemen state adalah salah satu aspek terpenting dari setiap aplikasi. State aplikasi menentukan apa yang dilihat pengguna, bagaimana tampilan aplikasi, data apa yang disimpan, dan sebagainya. Oleh karena itu, tidak mengherankan bahwa ada begitu banyak perpustakaan sumber terbuka yang dirancang khusus untuk membuat manajemen state lebih mudah dan menyenangkan.

Dari banyaknya kerangka kerja UI JavaScript, React mungkin adalah yang salah satu framework yang memiliki banyak pilihan ekosistem state management. Artikel ini akan mengulas 6 library teratas tersebut dan membandingkannya untuk melihat mana yang merupakan pilihan terbaik untuk aplikasi React Anda selanjutnya.

React Context

Akhir-akhir banyak bermunculan library state management yang sangat menggoda, tetapi layak untuk dicatat bahwa itu tidak selalu diperlukan. Pada aplikasi kecil hingga menengah, menambahkan dependensi tambahan, yang berarti ukuran bundel bertamabah, kompleksitas, konsep, dan lain-lain, dapat menciptakan lebih banyak kerugian daripada manfaat.

Untuk kasus-kasus seperti itu, React memiliki alat bawaan – yaitu API State dan Context. Keduanya sudah cukup baik untuk sebagian besar aplikasi.

Pilihan terbaik adalah tetap menggunakan dasar-dasar sampai project yang dikerjakan membutuhkan sesuatu yang lebih efektif dan efisien. Kemudian, jelajahi opsi – mulai dari yang ringan seperti Zustand hingga yang paling fitur dan cocok untuk pekerjaan seperti Redux atau Recoil.

Redux

Redux merupakan salah satu library yang terlengkap dan memiliki solusi solusi modern, walaupun baru-baru ini menerima banyak kritik.

Redux berperan dengan mengambil sebuah perintah action yang kemudian akan dilanjutkan atau diolah oleh Reducers. Dengan itu bentuk dari store akan juga secara otomatis berubah dengan mengikuti bentuk perubahan dari state.

Meskipun model Redux telah ada sejak lama, masalah terbesarnya adalah boilerplate terkait. Menulis tindakan untuk menjelaskan setiap perubahan state yang mungkin dan kemudian beberapa reducer untuk menangani tindakan tersebut dapat menghasilkan banyak kode, yang dengan cepat dapat sulit untuk dipelihara. Itulah mengapa Redux Toolkit diciptakan.

Saat ini, Redux Toolkit adalah cara yang paling banyak digunakan untuk menggunakan Redux. Ini menyederhanakan pengaturan store, mengurangi boilerplate yang diperlukan, dan mengikuti praktik terbaik secara default. Selain itu, itu dilengkapi dengan Immer, misalnya, untuk memungkinkan perubahan state dengan mudah, dan Redux-Thunk untuk bekerja dengan logika async.

Zustand

Ketika berbicara tentang pengelola state untuk React, Redux seringkali menjadi pilihan utama. Pada awalnya, Redux membutuhkan banyak boilerplate untuk digunakan, tetapi dengan kemunculan Redux Toolkit, penggunaannya menjadi lebih ringkas.

Meskipun Redux masih populer, alternatif lain seperti Zustand juga menarik untuk dipertimbangkan. Saya pribadi memilih Zustand karena kesederhanaannya dan ketika saya merasa Redux terlalu rumit.

Salah satu keunggulan Zustand adalah algoritmanya yang efisien dalam membedakan perubahan state. Hal ini sangat penting karena dapat mencegah rendering ulang yang tidak perlu. Misalnya, jika hanya satu bagian dari state yang berubah, hanya komponen-komponen yang bergantung pada bagian itu yang akan di-render ulang.

Dengan demikian, pemilihan pengelola state seperti Zustand tidak hanya berdasarkan praktisitasnya, tetapi juga pada kemampuannya untuk mengoptimalkan kinerja komponen React.

Recoil

Recoil, sebuah pustaka eksperimental untuk manajemen state global dari Facebook yang dikembangkan oleh Dave McCabe, telah menarik perhatian saya lebih dari Redux. Ini karena kemampuan Recoil dalam menangani masalah-masalah kompleks terkait manajemen state global dengan konfigurasi yang sederhana, berbeda dengan Redux. Dengan Recoil, kita dapat menghindari penulisan banyak kode boilerplate yang sering terjadi saat menggunakan pustaka manajemen state lain seperti Redux.

Recoil memungkinkan untuk membuat graf aliran data yang mengalir dari atom (state bersama) melalui selector (fungsi murni) dan turun ke komponen React. Atom adalah unit state yang dapat dipantau oleh komponen. Selector mengubah state ini baik secara sinkron atau asinkron.

Jotai

Jotai mengambil pendekatan atomik dalam manajemen state global React.

membuat state dengan menggabungkan atom, dan render secara otomatis dioptimalkan berdasarkan ketergantungan atom. Ini mengatasi masalah re-render tambahan dari konteks React, menghilangkan kebutuhan untuk memoisasi, dan menyediakan pengalaman pengembang yang mirip dengan sinyal sambil mempertahankan model pemrograman deklaratif.

Ini dapat diubah dari pengganti useState sederhana menjadi aplikasi TypeScript perusahaan dengan persyaratan yang kompleks. Ditambah ada banyak utilitas dan ekstensi untuk membantu sepanjang proses development

Referensi

https://blog.openreplay.com/top-6-react-state-management-libraries-for-2022/

https://medium.com/kredibel/belajar-zustand-bagi-yang-dengki-terhadap-redux-e3c3e5bbed87

https://jotai.org/

https://recoiljs.org/

https://redux.js.org/

https://zustand-demo.pmnd.rs/