Pertukaran Data antara Aplikasi Redux dan Server
Bagian ini ditujukan untuk pelajar yang berpengalaman, yang tidak berhenti pada pencapaian mereka dalam Redux dan memutuskan untuk menyelesaikan tutorial ini. Dalam dua bagian berikutnya, kita akan membahas pekerjaan aplikasi Redux dengan logika asinkron, menghubungkan aplikasi kita dengan *backend* dan mengajarkannya untuk bertukar data dengannya.
Dari bagian sebelumnya, kita tahu bahwa dasar pekerjaan aplikasi Redux adalah mekanisme sinkron. Tahapan utama pekerjaannya terdiri dari pengiriman *action* ketika suatu peristiwa terjadi dalam aplikasi, kemudian memperbarui *state* di *store* dengan fungsi-*reducer*, pemberitahuan komponen aplikasi tentang perubahan *state* dan sesuai dengan itu penampilan nilai *state* baru dalam komponen.
Dalam kehidupan nyata, sering terjadi bahwa aplikasi
membutuhkan logika asinkron juga, misalnya saat
bekerja dengan permintaan HTTP API dan mendapatkan data
dari beberapa server eksternal. Oleh karena itu, agar
'sinkron' Redux *store* kita dapat bekerja
dengan logika asinkron seperti itu, digunakan yang disebut
middleware - perangkat lunak,
yang merupakan perantara atau penghubung antara
*store* aplikasi kita dan, misalnya,
server, yang akan kita mulai kerjakan dalam
bab tutorial ini.
Untuk Redux, banyak *middleware* seperti itu telah dibuat,
namun yang paling luas digunakan di antara
mereka dan secara resmi direkomendasikan untuk pekerjaan aplikasi Redux
dengan logika asinkron masih tetap
Redux Thunk.
Perangkat lunak ini membantu kita menggunakan
fungsi biasa (atau *thunks*), yang dapat berisi
logika asinkron di dalamnya, seperti
setTimeout, Promises, async/await,
untuk berinteraksi dengan *store* kita. Adapun
istilahnya sendiri, thunk adalah kode yang
melakukan pekerjaan yang tertunda.
Sekarang, setelah kita sedikit mengenal cara bekerja dalam Redux dengan logika asinkron, kita dapat melanjutkan ke implementasi tahap ini dalam aplikasi kita. Kita perlu membuat agar aplikasi kita dapat berinteraksi dengan beberapa server eksternal, menerima darinya dan mengirimkan data kepadanya. Dengan kata lain, di depan kita menunggu topik yang menarik dan sangat penting. Mari kita mulai.