Η διαδικασία απόδοσης σε εφαρμογές React είναι συχνά καθοριστικός παράγοντας για την απόδοση. Εάν τα στοιχεία απεικονίζονται άσκοπα, αυτό μπορεί να οδηγήσει σε αισθητή επιβράδυνση της εφαρμογής. Για την αποφυγή αυτού του προβλήματος, το React προσφέρει άγκιστρα όπως το useCallback. Σε αυτό το σεμινάριο, θα μάθετε πώς να χρησιμοποιήσετε το useCallback για να βελτιστοποιήσετε την απόδοση της απόδοσης απόδοσης των στοιχείων σας, ειδικά όταν χρησιμοποιούνται callback props.
Βασικά συμπεράσματα
- Το useCallback αποθηκεύει μια συνάρτηση μεταξύ των κύκλων απόδοσης.
- Η σωστή χρήση του useCallback μειώνει τις περιττές αναπαραστάσεις.
- Όταν χρησιμοποιείτε το useCallback, να δίνετε πάντα προσοχή στις εξαρτήσεις.
Οδηγίες βήμα προς βήμα
1. Εισαγωγή στα callback props
Για να κατανοήσετε τη λειτουργία της useCallback, θα πρέπει πρώτα να διευκρινίσετε την έννοια των callback props. Τα callback props είναι συναρτήσεις που μεταβιβάζονται σε στοιχεία-παιδιά. Στο παράδειγμά μας, έχουμε ένα απλό συστατικό κουμπί που λαμβάνει μια συνάρτηση ως στήριγμα για να εκτελέσει μια ενέργεια.
Με αυτή τη δομή, φανταστείτε ότι κατά την απόδοση του συστατικού-παιδί, η συνάρτηση επανάκλησης παράγεται επίσης ξανά και ξανά. Αυτό σημαίνει ότι κάθε φορά που το συστατικό γονέα αναπαριστάται εκ νέου, αλλάζει και η συνάρτηση επανάκλησης, ακόμη και αν η λογική του δεν αλλάζει.
2. Υλοποίηση χωρίς useCallback
Ας υποθέσουμε ότι έχετε ήδη δημιουργήσει το στοιχείο κουμπιού σας χωρίς να χρησιμοποιήσετε τη useCallback. Σε αυτή την περίπτωση, ο κώδικάς σας μπορεί να μοιάζει ως εξής: Δηλώνετε τη συνάρτηση onClick απευθείας στο συστατικό γονέα. Εάν η κατάσταση του συστατικού γονέα αλλάξει, το κουμπί αναδημιουργείται εκ νέου και η συνάρτηση callback δημιουργείται ξανά.
3. Εισαγωγή της useCallback
Σε αυτό το σημείο μπαίνει στο παιχνίδι η useCallback. Με τη useCallback, μπορείτε να "αποθηκεύσετε" τη συνάρτηση επανάκλησης στην κρυφή μνήμη, ώστε να αναδημιουργείται μόνο όταν αλλάζουν οι καθορισμένες εξαρτήσεις. Για να χρησιμοποιήσετε σωστά το useCallback, πρέπει να τυλίξετε τη συνάρτηση επανάκλησής σας στο άγκιστρο.
Αυτό έχει ως αποτέλεσμα να θυμάστε την αρχική συνάρτηση όσο οι εξαρτήσεις παραμένουν αμετάβλητες. Αυτό σημαίνει ότι εάν το γονικό στοιχείο αναπαραχθεί επανειλημμένα, η παλιά συνάρτηση διατηρείται πάντα, εφόσον οι εξαρτήσεις δεν αλλάζουν.
4. Ορισμός εξαρτήσεων
Αυτό είναι επίσης το κρίσιμο σημείο κατά τη χρήση της useCallback. Πρέπει να διασφαλίσετε ότι ορίζετε τις σωστές εξαρτήσεις στον κενό πίνακα. Εάν έχετε δεσμεύσει τη συνάρτηση σε μεταβλητές, αυτές οι μεταβλητές θα πρέπει να βρίσκονται στον πίνακα εξαρτήσεων.
Εάν γίνουν αλλαγές στην κατάσταση, το React θα καταλάβει ότι η συνάρτηση πρέπει να αναδημιουργηθεί επειδή μία από τις καθορισμένες μεταβλητές έχει αλλάξει.
5. Δοκιμή της υλοποίησης
Για να βεβαιωθείτε ότι η υλοποίηση λειτουργεί, μπορείτε να δοκιμάσετε την εφαρμογή στο πρόγραμμα περιήγησης. Αν κάνετε κλικ στο κουμπί χωρίς να χρησιμοποιήσετε το useCallback, θα δείτε ότι το κουμπί και τα άλλα στοιχεία αποδίδονται ξανά και ξανά.
Τώρα προσθέστε το useCallback και ελέγξτε την απόδοση. Αν όλα έχουν υλοποιηθεί σωστά, το κουμπί θα πρέπει να σταματήσει να απεικονίζεται όταν το στήριγμα σταματήσει να αλλάζει.
6. Ζυγίστε τα πλεονεκτήματα και τα μειονεκτήματα
Είναι σημαντικό να σταθμίσετε τη χρήση του useCallback. Σε πολλές περιπτώσεις, η χρήση της απαιτεί πρόσθετη προσπάθεια, και μπορεί να μην είναι απαραίτητη η βελτιστοποίηση σε απλούστερα στοιχεία. Ελέγξτε λοιπόν αν αξίζει να χρησιμοποιήσετε το useCallback με βάση την πολυπλοκότητα των συστατικών σας.
Σημειώστε ότι η useCallback είναι πραγματικά επωφελής εάν χρησιμοποιείτε επίσης τη βελτιστοποίηση memo. Διαφορετικά, μπορεί να έχετε πρόσβαση μόνο στην ίδια συνάρτηση επανάκλησης, ενώ το στοιχείο σας εξακολουθεί να αναδημιουργείται ξανά και ξανά.
Περίληψη
Η υλοποίηση της useCallback σας επιτρέπει να αποφύγετε την περιττή απόδοση και να βελτιστοποιήσετε την απόδοση της εφαρμογής σας React. Φροντίζετε πάντα να ορίζετε τις σωστές εξαρτήσεις και να εξετάζετε τη χρήση του άγκιστρου ανάλογα με την πολυπλοκότητα του συστατικού σας.
Συχνές ερωτήσεις
Πώς λειτουργεί το useCallback; ΤοuseCallback αποθηκεύει μια συνάρτηση μεταξύ των κύκλων απόδοσης και την αναδημιουργεί μόνο όταν αλλάζει μια εξάρτηση που καθορίζετε.
Πότε θα πρέπει να χρησιμοποιήσω το useCallback;Χρησιμοποιήστε το useCallback εάν έχετε στηρίγματα επανάκλησης και αυτά τα στηρίγματα προκαλούν ανεπιθύμητες αναπαραστάσεις σε στοιχεία-παιδιά.
Χρειάζομαι πάντα useCallback για κάθε συνάρτηση;Όχι, θα πρέπει να χρησιμοποιείτε το useCallback μόνο αν βοηθάει την απόδοση της εφαρμογής σας, ειδικά για πιο σύνθετα και συχνά αναπαραγόμενα στοιχεία.
Ποιες εξαρτήσεις πρέπει να καθορίσω; Προσδιορίστεόλες τις μεταβλητές που χρησιμοποιούνται στη συνάρτηση callback σας και που μπορούν να αλλάξουν στη συστοιχία εξαρτήσεων.
Μπορώ να χρησιμοποιήσω τη useCallback από μόνη της; όχι απαραίτητα. Συχνά συνιστάται ο συνδυασμός με άλλα hooks, όπως το React.memo, για να επιτευχθούν οι επιθυμητές βελτιώσεις στην απόδοση.