Ανταλλαγή δεδομένων μεταξύ εφαρμογής Redux και διακομιστή
Αυτή η ενότητα θα είναι για τους γνώστες μαθητές, που δεν σταμάτησαν σε ό,τι πέτυχαν στο Redux και αποφάσισαν να φτάσουν στο τέλος αυτού του εκπαιδευτικού βιβλίου. Στις επόμενες δύο ενότητες, θα αγγίξουμε τη λειτουργία εφαρμογής Redux με ασύγχρονη λογική, θα συνδέσουμε την εφαρμογή μας με το backend και θα τη διδάξουμε να ανταλλάσσει δεδομένα με αυτό.
Από προηγούμενες ενότητες, γνωρίζουμε ότι η βάση της λειτουργίας μιας εφαρμογής Redux είναι ένας συγχρονισμένος μηχανισμός. Τα κύρια στάδια λειτουργίας περιλαμβάνουν την αποστολή actions όταν συμβαίνει κάποιο συμβάν στην εφαρμογή, στη συνέχεια την ενημέρωση της κατάστασης στο store από τη συνάρτηση reducer, την ειδοποίηση των components της εφαρμογής για αλλαγή στην κατάσταση και αντίστοιχα την εμφάνιση της νέας τιμής της κατάστασης στα components.
Στην πραγματική ζωή συμβαίνει συχνά ότι η εφαρμογή
χρειάζεται και ασύγχρονη λογική, για παράδειγμα κατά τη
δουλειά με αιτήματα HTTP API και λήψη δεδομένων
από κάποιον εξωτερικό διακομιστή. Επομένως, για να μπορέσει
το 'συγχρονισμένο' Redux store μας να δουλέψει
με τέτοια ασύγχρονη λογική, χρησιμοποιείται το λεγόμενο
middlware - λογισμικό που
λειτουργεί ως μεσάζοντας ή σύνδεσμος μεταξύ
του store της εφαρμογής μας και, για παράδειγμα,
ενός διακομιστή, με τον οποίο θα ξεκινήσουμε τη δουλειά σε αυτό
το κεφάλαιο του εκπαιδευτικού βιβλίου.
Για το Redux έχουν δημιουργηθεί πολλά τέτοια middleware,
όμως ο πιο ευρέως διαδεδομένος μεταξύ
τους και επίσημα συνιστώμενος για εφαρμογές Redux
που δουλεύουν με ασύγχρονη λογική μέχρι στιγμής παραμένει
το Redux Thunk.
Αυτό το λογισμικό μας βοηθά να χρησιμοποιούμε συνηθισμένες
συναρτήσεις (ή thunks), που μπορούν να περιέχουν
ασύγχρονη λογική, όπως
setTimeout, Promises, async/await,
για αλληλεπίδραση με το store μας. Όσον αφορά τον
ίδιο τον όρο, thunk - είναι κώδικας που
κάνει κάποια αναβαλλόμενη εργασία.
Τώρα που έχουμε εξοικειωθεί λίγο με το πώς να δουλέψουμε στο Redux με ασύγχρονη λογική, μπορούμε να προχωρήσουμε στην υλοποίηση αυτού του σταδίου στην εφαρμογή μας. Πρέπει να κάνουμε την εφαρμογή μας ικανή να αλληλεπιδρά με κάποιον εξωτερικό διακομιστή, δέχομενη δεδομένα από αυτόν και μεταδίδοντας του δεδομένα. Με άλλα λόγια, μπροστά μας βρίσκεται ένα συναρπαστικό και πολύ σημαντικό θέμα. Ας ξεκινήσουμε.