Chapitre 45 — StatelessWidget, StatefulWidget et cycle de vie
Partie 1B — Créer des applications Flutter · Chapitre 45 sur 62 · 7 h
Chapitre 45 — StatelessWidget, StatefulWidget et cycle de vie
Niveau : débutant / intermédiaire Durée estimée : 7 h Pré-requis : chapitre 44 — Les widgets et l'arbre de widgets Ce que vous saurez faire à la fin : décider si un widget doit être
StatelessWidgetouStatefulWidget, stocker un état dans une classeState, le modifier proprement avecsetState(), initialiser et libérer des ressources aux bons moments du cycle de vie, et remonter un état vers un parent commun.
45.0 — Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de :
- expliquer ce qu'est l'« état » d'une interface ;
- distinguer ce qui change dans une interface de ce qui ne change pas ;
- définir précisément un
StatelessWidget; - écrire un
StatelessWidgetde zéro ; - expliquer le rôle exact de la méthode
build(); - expliquer pourquoi toutes les propriétés d'un widget sans état sont
final; - passer des données à un widget par son constructeur ;
- expliquer pourquoi un
StatefulWidgetest fait de deux classes ; - écrire une classe
State<T>; - placer les variables d'état au bon endroit ;
- utiliser
setState()correctement ; - décrire ce que
setState()fait réellement dans le framework ; - écrire le compteur, exemple canonique de Flutter ;
- reconnaître le bug silencieux de l'état modifié hors de
setState(); - mesurer le coût d'un
setState()inutile ; - accéder aux propriétés du widget depuis l'état avec
widget.propriete; - lire et dessiner le cycle de vie complet d'un
State; - utiliser
createState(),initState(),didChangeDependencies(),build(),didUpdateWidget(),deactivate()etdispose(); - libérer un contrôleur dans
dispose(); - utiliser
mountedpour éviter unsetState()après démontage ; - choisir entre état local et état remonté ;
- pratiquer la remontée d'état (lifting state up) ;
- faire redescendre une action par un callback ;
- énoncer les limites de cette approche et savoir ce que le chapitre 52 apportera ;
- appliquer un arbre de décision « stateless ou stateful ? ».
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion