Éviter les redessins inutiles
Limitez la portée de l’état pour réduire les réévaluations du corps.
Éviter les redessins inutiles est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 2 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 SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
The Cost of Over-Updating
If a tiny change forces a huge view to rebuild, scrolling stutters. The fix is to keep each redraw as small as possible.
State Lives Where It Changes
Put @State in the smallest view that owns it. Then only that little view re-evaluates when the value flips, not its big parent.
struct Counter: View {
@State private var count = 0
}Extract Subviews
Break a large body into smaller subviews. SwiftUI can then diff and skip the pieces whose inputs did not change.
var body: some View {
HeaderView()
FeedView()
}Pass Only What You Need
Hand a subview just the values it reads. The fewer dependencies a view has, the less often it must recompute.
RowView(title: item.title)Watch Observable Reads
With @Observable models, a view updates only for the exact properties it touches. Read just the fields you display.
Avoid Wide State Objects
One giant model read everywhere makes every change ripple outward. Split it so each view depends on a narrow slice of data.
Beware Closures Capturing Self
A closure that reads many properties widens a view's dependencies. Capture only the specific value the action truly needs.
Move Heavy Work Out of body
Never do expensive computing inside body. It runs often, so cache results in state or a model and read the finished value.
Use let for Constants
Mark unchanging inputs as let. Constant properties never trigger updates, signaling clearly that they cannot cause a redraw.
struct Badge: View {
let label: String
}Equatable Views
For costly subviews, make them Equatable so SwiftUI can compare inputs and skip re-evaluation when they match.
ExpensiveView(data: data)
.equatable()Optimize What You Measure
Do not guess. Scope state, extract views, then measure to confirm you actually shrank the redraws that hurt.
Quick Check
Where should you place state to limit redraws?
Recap: Avoiding Redraws
You learned to scope state tightly, extract subviews, pass minimal data, and keep body cheap. Smaller dependencies mean fewer redraws. ⚡
Questions Fréquemment Posées
La leçon « Éviter les redessins inutiles » est-elle gratuite ?
Oui — le texte complet de « Éviter les redessins inutiles » 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 SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Éviter les redessins inutiles » ?
Limitez la portée de l’état pour réduire les réévaluations du corps. Tu pratiques SwiftUI 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 SwiftUI Academy ?
Aucune expérience préalable n'est requise. SwiftUI 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 2 sur 4.
Combien de temps prend la leçon « Éviter les redessins inutiles » ?
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 SwiftUI Academy ?
Oui. Chaque leçon SwiftUI 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
- Comment SwiftUI recalcule les vues
- Éviter les redessins inutiles
- Chargement différé des contenus lourds
- Profiler avec Instruments