0Pricing
SwiftUI Academy · Leçon

Le modificateur .task

Chargez les données lorsqu’une vue apparaît.

Le modificateur .task est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.

Loading When a View Appears

Often you want to fetch data the moment a screen shows. The .task modifier runs async work exactly when the view appears. ⏱️

Attaching .task

Add .task to any view and give it an async closure. SwiftUI starts that work as the view comes on screen.

List(users) { user in Text(user.name) }
    .task { await load() }

It Calls Async Code

Inside .task you can freely use await. That makes it the natural home for your URLSession fetch on appearance.

.task {
    users = try? await loadUsers()
}

Why Not onAppear

The older onAppear cannot await async work directly. The .task modifier is built for concurrency, so prefer it for loading.

Automatic Cancellation

When the view disappears, SwiftUI cancels the task for you. That stops wasted work and avoids updating a gone view. ✨

Reacting to an id

Pass an id to .task and it reruns whenever that value changes. Perfect for reloading when a selection updates.

.task(id: selectedID) {
    await loadDetail(selectedID)
}

Updating State After Fetch

Store results in @State so assigning them refreshes the UI. The view redraws as soon as the data arrives.

@State private var users: [User] = []

Handling Errors Inside

Wrap risky calls in do/catch inside the task. You can then set an error message that the view shows the user.

do { users = try await loadUsers() }
catch { errorText = "Failed" }

Runs on the Main Actor

A .task closure starts on the main actor, so updating state and UI from it is safe without extra hopping.

One Task per Lifetime

By default .task runs once per appearance. For repeated refresh use pull-to-refresh or a changing id instead.

Keeping the Closure Small

Call a named function from .task rather than stuffing logic inline. It keeps the view tidy and easy to read.

.task { await viewModel.refresh() }

Quick Check

Quick check on triggering async loads.

Recap: .task

You learned that .task runs async work when a view appears, cancels on disappear, can rerun on an id, and is the go-to place to fetch. 👍

Questions Fréquemment Posées

La leçon « Le modificateur .task » est-elle gratuite ?

Oui — le texte complet de « Le modificateur .task » 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 « Le modificateur .task » ?

Chargez les données lorsqu’une vue apparaît. 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 3 sur 4.

Combien de temps prend la leçon « Le modificateur .task » ?

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

  1. Décoder du JSON avec Codable
  2. Appeler des API avec URLSession
  3. Le modificateur .task
  4. États de chargement et d’erreur
← Retour à SwiftUI Academy