Showing
1 changed file
with
27 additions
and
27 deletions
@@ -12,10 +12,10 @@ | @@ -12,10 +12,10 @@ | ||
12 | - [Obx()](#obx) | 12 | - [Obx()](#obx) |
13 | - [Workers](#workers) | 13 | - [Workers](#workers) |
14 | - [Gestionnaire d'état simple](#gestionnaire-d-etat-simple) | 14 | - [Gestionnaire d'état simple](#gestionnaire-d-etat-simple) |
15 | - - [Advantages](#advantages-1) | ||
16 | - - [Usage](#usage) | ||
17 | - - [How it handles controllers](#how-it-handles-controllers) | ||
18 | - - [You won't need StatefulWidgets anymore](#you-wont-need-statefulwidgets-anymore) | 15 | + - [Atouts](#atouts) |
16 | + - [Utilisation](#utilisation) | ||
17 | + - [Comment il gère les contrôleurs](#comment-il-gre-les-contrleurs) | ||
18 | + - [Vous n'aurez plus besoin de StatefulWidgets](#vous-naurez-plus-besoin-de-statefulwidgets) | ||
19 | - [Why it exists](#why-it-exists) | 19 | - [Why it exists](#why-it-exists) |
20 | - [Other ways of using it](#other-ways-of-using-it) | 20 | - [Other ways of using it](#other-ways-of-using-it) |
21 | - [Unique IDs](#unique-ids) | 21 | - [Unique IDs](#unique-ids) |
@@ -444,7 +444,7 @@ GetBuilder vise précisément le contrôle de plusieurs états. Imaginez que vou | @@ -444,7 +444,7 @@ GetBuilder vise précisément le contrôle de plusieurs états. Imaginez que vou | ||
444 | 444 | ||
445 | De cette façon, si vous voulez un contrôleur individuel, vous pouvez lui attribuer des ID ou utiliser GetX. Cela dépend de vous, en vous rappelant que plus vous avez de widgets "individuels", plus les performances de GetX se démarqueront, tandis que les performances de GetBuilder devraient être supérieures, en cas de changement d'état multiple. | 445 | De cette façon, si vous voulez un contrôleur individuel, vous pouvez lui attribuer des ID ou utiliser GetX. Cela dépend de vous, en vous rappelant que plus vous avez de widgets "individuels", plus les performances de GetX se démarqueront, tandis que les performances de GetBuilder devraient être supérieures, en cas de changement d'état multiple. |
446 | 446 | ||
447 | -### Advantages | 447 | +### Atouts |
448 | 448 | ||
449 | 1. Met à jour uniquement les widgets requis. | 449 | 1. Met à jour uniquement les widgets requis. |
450 | 450 | ||
@@ -464,34 +464,34 @@ De cette façon, si vous voulez un contrôleur individuel, vous pouvez lui attri | @@ -464,34 +464,34 @@ De cette façon, si vous voulez un contrôleur individuel, vous pouvez lui attri | ||
464 | 464 | ||
465 | 9. Get est omniscient et, dans la plupart des cas, il sait exactement quand sortir de mémoire un contrôleur. Vous ne devez pas vous soucier du moment de vous débarrasser d'un contrôleur, Get connaît le meilleur moment pour le faire. | 465 | 9. Get est omniscient et, dans la plupart des cas, il sait exactement quand sortir de mémoire un contrôleur. Vous ne devez pas vous soucier du moment de vous débarrasser d'un contrôleur, Get connaît le meilleur moment pour le faire. |
466 | 466 | ||
467 | -### Usage | 467 | +### Utilisation |
468 | 468 | ||
469 | ```dart | 469 | ```dart |
470 | -// Create controller class and extends GetxController | 470 | +// Créez la classe controller qui 'extends' GetxController |
471 | class Controller extends GetxController { | 471 | class Controller extends GetxController { |
472 | int counter = 0; | 472 | int counter = 0; |
473 | void increment() { | 473 | void increment() { |
474 | counter++; | 474 | counter++; |
475 | - update(); // use update() to update counter variable on UI when increment be called | 475 | + update(); // utilisez update () pour mettre à jour la variable de compteur sur l'interface utilisateur lorsque incrément() est appelé |
476 | } | 476 | } |
477 | } | 477 | } |
478 | -// On your Stateless/Stateful class, use GetBuilder to update Text when increment be called | 478 | +// Sur votre classe Stateless / Stateful, utilisez GetBuilder pour mettre à jour le texte lorsque incrément() est appelé |
479 | GetBuilder<Controller>( | 479 | GetBuilder<Controller>( |
480 | - init: Controller(), // INIT IT ONLY THE FIRST TIME | 480 | + init: Controller(), // INITIER CA UNIQUEMENT LA PREMIÈRE FOIS |
481 | builder: (_) => Text( | 481 | builder: (_) => Text( |
482 | '${_.counter}', | 482 | '${_.counter}', |
483 | ), | 483 | ), |
484 | ) | 484 | ) |
485 | -//Initialize your controller only the first time. The second time you are using ReBuilder for the same controller, do not use it again. Your controller will be automatically removed from memory as soon as the widget that marked it as 'init' is deployed. You don't have to worry about that, Get will do it automatically, just make sure you don't start the same controller twice. | 485 | +//Initialisez votre contrôleur uniquement la première fois. La deuxième fois que vous utilisez ReBuilder pour le même contrôleur, ne recommencez pas. Votre contrôleur sera automatiquement supprimé de la mémoire dès que le widget qui l'a marqué comme «init» sera déployé. Vous n'avez pas à vous en soucier, Get le fera automatiquement, assurez-vous simplement de ne pas démarrer deux fois le même contrôleur. |
486 | ``` | 486 | ``` |
487 | 487 | ||
488 | -**Done!** | 488 | +**Fait!** |
489 | 489 | ||
490 | -- You have already learned how to manage states with Get. | 490 | +- Vous avez déjà appris à gérer les états avec Get. |
491 | 491 | ||
492 | -- Note: You may want a larger organization, and not use the init property. For that, you can create a class and extends Bindings class, and within it mention the controllers that will be created within that route. Controllers will not be created at that time, on the contrary, this is just a statement, so that the first time you use a Controller, Get will know where to look. Get will remain lazyLoad, and will continue to dispose Controllers when they are no longer needed. See the pub.dev example to see how it works. | 492 | +- Note: Vous pouvez souhaiter une organisation plus grande et ne pas utiliser la propriété init. Pour cela, vous pouvez créer une classe et étendre la classe Bindings, et y mentionner les contrôleurs qui seront créés dans cette route. Les contrôleurs ne seront pas créés à ce moment-là, au contraire, il ne s'agit que d'une déclaration, de sorte que la première fois que vous utilisez un contrôleur, Get saura où chercher. Get restera lazyLoad et continuera à supprimer les contrôleurs lorsqu'ils ne seront plus nécessaires. Voir l'exemple pub.dev pour voir comment cela fonctionne. |
493 | 493 | ||
494 | -If you navigate many routes and need data that was in your previously used controller, you just need to use GetBuilder Again (with no init): | 494 | +Si vous parcourez de nombreuses routes et avez besoin de données qui se trouvaient dans votre contrôleur précédemment utilisé, il vous suffit de réutiliser GetBuilder (sans init): |
495 | 495 | ||
496 | ```dart | 496 | ```dart |
497 | class OtherClass extends StatelessWidget { | 497 | class OtherClass extends StatelessWidget { |
@@ -508,16 +508,16 @@ class OtherClass extends StatelessWidget { | @@ -508,16 +508,16 @@ class OtherClass extends StatelessWidget { | ||
508 | 508 | ||
509 | ``` | 509 | ``` |
510 | 510 | ||
511 | -If you need to use your controller in many other places, and outside of GetBuilder, just create a get in your controller and have it easily. (or use `Get.find<Controller>()`) | 511 | +Si vous devez utiliser votre contrôleur dans de nombreux autres endroits, et en dehors de GetBuilder, créez simplement un get dans votre contrôleur et ayez-le facilement. (ou utilisez `Get.find <Controller> ()`) |
512 | 512 | ||
513 | ```dart | 513 | ```dart |
514 | class Controller extends GetxController { | 514 | class Controller extends GetxController { |
515 | 515 | ||
516 | - /// You do not need that. I recommend using it just for ease of syntax. | ||
517 | - /// with static method: Controller.to.counter(); | ||
518 | - /// with no static method: Get.find<Controller>().counter(); | ||
519 | - /// There is no difference in performance, nor any side effect of using either syntax. Only one does not need the type, and the other the IDE will autocomplete it. | ||
520 | - static Controller get to => Get.find(); // add this line | 516 | + /// Vous n'en avez pas besoin. Je recommande de l'utiliser uniquement pour faciliter la syntaxe. |
517 | + /// avec la méthode statique: Controller.to.counter (); | ||
518 | + /// sans méthode statique: Get.find <Controller> () .counter (); | ||
519 | + /// Il n'y a aucune différence de performances, ni aucun effet secondaire de l'utilisation de l'une ou l'autre syntaxe. Un seul n'a pas besoin du type, et l'autre l'EDI le complétera automatiquement. | ||
520 | + static Controller get to => Get.find(); // Ajouter cette ligne | ||
521 | 521 | ||
522 | int counter = 0; | 522 | int counter = 0; |
523 | void increment() { | 523 | void increment() { |
@@ -527,7 +527,7 @@ class Controller extends GetxController { | @@ -527,7 +527,7 @@ class Controller extends GetxController { | ||
527 | } | 527 | } |
528 | ``` | 528 | ``` |
529 | 529 | ||
530 | -And then you can access your controller directly, that way: | 530 | +Et puis vous pouvez accéder directement à votre contrôleur, de cette façon: |
531 | 531 | ||
532 | ```dart | 532 | ```dart |
533 | FloatingActionButton( | 533 | FloatingActionButton( |
@@ -538,17 +538,17 @@ FloatingActionButton( | @@ -538,17 +538,17 @@ FloatingActionButton( | ||
538 | ), | 538 | ), |
539 | ``` | 539 | ``` |
540 | 540 | ||
541 | -When you press FloatingActionButton, all widgets that are listening to the 'counter' variable will be updated automatically. | 541 | +Lorsque vous appuyez sur FloatingActionButton, tous les widgets qui écoutent la variable «counter» seront mis à jour automatiquement. |
542 | 542 | ||
543 | -### How it handles controllers | 543 | +### Comment il gère les contrôleurs |
544 | 544 | ||
545 | -Let's say we have this: | 545 | +Disons que nous avons ceci: |
546 | 546 | ||
547 | `Class a => Class B (has controller X) => Class C (has controller X)` | 547 | `Class a => Class B (has controller X) => Class C (has controller X)` |
548 | 548 | ||
549 | -In class A the controller is not yet in memory, because you have not used it yet (Get is lazyLoad). In class B you used the controller, and it entered memory. In class C you used the same controller as in class B, Get will share the state of controller B with controller C, and the same controller is still in memory. If you close screen C and screen B, Get will automatically take controller X out of memory and free up resources, because Class a is not using the controller. If you navigate to B again, controller X will enter memory again, if instead of going to class C, you return to class A again, Get will take the controller out of memory in the same way. If class C didn't use the controller, and you took class B out of memory, no class would be using controller X and likewise it would be disposed of. The only exception that can mess with Get, is if you remove B from the route unexpectedly, and try to use the controller in C. In this case, the creator ID of the controller that was in B was deleted, and Get was programmed to remove it from memory every controller that has no creator ID. If you intend to do this, add the "autoRemove: false" flag to class B's GetBuilder and use adoptID = true; in class C's GetBuilder. | 549 | +Dans la classe A, le contrôleur n'est pas encore en mémoire, car vous ne l'avez pas encore utilisé (Get est lazyLoad). Dans la classe B, vous avez utilisé le contrôleur et il est entré en mémoire. Dans la classe C, vous avez utilisé le même contrôleur que dans la classe B, Get partagera l'état du contrôleur B avec le contrôleur C, et le même contrôleur est toujours en mémoire. Si vous fermez l'écran C et l'écran B, Get retirera automatiquement le contrôleur X de la mémoire et libèrera des ressources, car la classe A n'utilise pas le contrôleur. Si vous naviguez à nouveau vers B, le contrôleur X entrera à nouveau en mémoire, si au lieu de passer à la classe C, vous revenez en classe A, Get retirera le contrôleur de la mémoire de la même manière. Si la classe C n'utilisait pas le contrôleur et que vous retiriez la classe B de la mémoire, aucune classe n'utiliserait le contrôleur X et de même, elle serait éliminée. La seule exception qui peut gâcher Get, est si vous supprimez B de l'itinéraire de manière inattendue et essayez d'utiliser le contrôleur dans C.Dans ce cas, l'ID de créateur du contrôleur qui était dans B a été supprimé et Get a été programmé pour supprimer de la mémoire tous les contrôleurs qui n'ont pas d'ID de créateur. Si vous avez l'intention de faire cela, ajoutez l'indicateur "autoRemove: false" au GetBuilder de la classe B et utilisez adoptID = true; dans GetBuilder de la classe C. |
550 | 550 | ||
551 | -### You won't need StatefulWidgets anymore | 551 | +### Vous n'aurez plus besoin de StatefulWidgets |
552 | 552 | ||
553 | Using StatefulWidgets means storing the state of entire screens unnecessarily, even because if you need to minimally rebuild a widget, you will embed it in a Consumer/Observer/BlocProvider/GetBuilder/GetX/Obx, which will be another StatefulWidget. | 553 | Using StatefulWidgets means storing the state of entire screens unnecessarily, even because if you need to minimally rebuild a widget, you will embed it in a Consumer/Observer/BlocProvider/GetBuilder/GetX/Obx, which will be another StatefulWidget. |
554 | The StatefulWidget class is a class larger than StatelessWidget, which will allocate more RAM, and this may not make a significant difference between one or two classes, but it will most certainly do when you have 100 of them! | 554 | The StatefulWidget class is a class larger than StatelessWidget, which will allocate more RAM, and this may not make a significant difference between one or two classes, but it will most certainly do when you have 100 of them! |
-
Please register or login to post a comment