Éviter les fermetures obsolètes
Découvrez quand les fermetures capturent d’anciennes valeurs et comment éviter les bogues.
Éviter les fermetures obsolètes est une leçon Sveltejs Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Sveltejs Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Sveltejs Academy comprend 4 leçons au total.
Qu’est-ce qu’une fermeture ?
Une fermeture capture les variables de sa portée englobante. Les valeurs qu’elle observe sont celles du moment de sa création.
Captures obsolètes
Si vous créez une fonction qui capture une variable, les changements ultérieurs de cette variable peuvent ne pas être visibles à l’intérieur.
Spécificités de Svelte
Les variables réactives se mettent à jour lors d’une affectation. Une capture instantanée ne se met NOT pas à jour automatiquement.
Exemple de problème
Un intervalle démarré dans onMount peut journaliser le compteur initial au lieu du compteur actuel.
onMount(() => setInterval(() => console.log(count), 1000));Solutions : relire la valeur
Utilisez une fonction qui relit la valeur la plus récente à chaque intervalle.
onMount(() => setInterval(() => console.log(getCount()), 1000));Solutions : gestionnaires d’état
Lisez la valeur depuis un gestionnaire d’état avec get(store) pour toujours obtenir la valeur la plus récente.
Instruction réactive
Redémarrez l’intervalle avec une instruction réactive lorsque ses dépendances changent, afin de capturer des valeurs à jour.
Nettoyer avec soin
Oublier de supprimer les intervalles fait fuir l’état entre les rendus. Associez chaque setInterval à clearInterval.
Pièges de l’asynchronisme
De longues attentes dans une fonction capturent l’état au moment de l’attente. Une mutation entre deux attentes reste invisible.
L’aide de TypeScript
Le mode strict et les règles d’analyse statique peuvent signaler les fermetures potentiellement obsolètes.
Vérifier les problèmes de valeurs obsolètes
Écrivez des vérifications qui mettent à jour l’état, puis déclenchent les rappels capturés afin de révéler les valeurs obsolètes.
Vérification rapide
Comment éviter les fermetures obsolètes avec un gestionnaire d’état ?
Récapitulatif
Les fermetures capturent par référence ; dans les rappels qui vivent longtemps, préférez les gestionnaires d’état ou les fonctions auxiliaires qui relisent les valeurs pour éviter leur obsolescence.
Apprends HTML avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 41
- Leçons
- 163
Questions Fréquemment Posées
La leçon « Éviter les fermetures obsolètes » est-elle gratuite ?
Oui — le texte complet de « Éviter les fermetures obsolètes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Sveltejs Academy, passe à CoddyKit PRO. Le cours Sveltejs Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Éviter les fermetures obsolètes » ?
Découvrez quand les fermetures capturent d’anciennes valeurs et comment éviter les bogues. Tu pratiques Sveltejs Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Sveltejs Academy ?
Aucune expérience préalable n'est requise. Sveltejs Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Éviter les fermetures obsolètes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Sveltejs Academy ?
Oui. Chaque leçon Sveltejs Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Instructions réactives : bloc $:
- Dépendances réactives et ordre d’exécution
- Quand utiliser les stores plutôt que l’état local
- Éviter les fermetures obsolètes