kamazoun

#5 in state_management.md

1 - [Gestion d'État](#gestion-d-etat) 1 - [Gestion d'État](#gestion-d-etat)
2 - [Gestionnaire d'état réactif](#gestionnaire-d-etat-reactif) 2 - [Gestionnaire d'état réactif](#gestionnaire-d-etat-reactif)
3 - [Avantages](#avantages) 3 - [Avantages](#avantages)
4 - - [Maximum performance:](#maximum-performance)  
5 - - [Declaring a reactive variable](#declaring-a-reactive-variable)  
6 - - [Having a reactive state, is easy.](#avoir-un-état-réactif-cest-facile)  
7 - - [Using the values in the view](#using-the-values-in-the-view)  
8 - - [Conditions to rebuild](#conditions-to-rebuild)  
9 - - [Where .obs can be used](#where-obs-can-be-used)  
10 - - [Note about Lists](#note-about-lists) 4 + - [Performance maximale:](#performance-maximale)
  5 + - [Déclaration d'une variable réactive](#declaration-d-une-variable-reactive)
  6 + - [Avoir un état réactif, c'est facile.](#avoir-un-etat-reactif-c-est-facile)
  7 + - [Utilisation des valeurs dans la Vue](#utilisation-des-valeurs-dans-la-vue)
  8 + - [Conditions pour reconstruire](#conditions-pour-reconstruire)
  9 + - [Quand utiliser .obs](#quand-utiliser-obs)
  10 + - [Remarque sur List](#remarque-sur-list)
11 - [Pourquoi je dois utiliser .value](#pourquoi-je-dois-utiliser-value) 11 - [Pourquoi je dois utiliser .value](#pourquoi-je-dois-utiliser-value)
12 - [Obx()](#obx) 12 - [Obx()](#obx)
13 - [Workers](#workers) 13 - [Workers](#workers)
@@ -142,7 +142,7 @@ Lors de la jonction de deux __observables__, si l'une change; le listener de cet @@ -142,7 +142,7 @@ Lors de la jonction de deux __observables__, si l'une change; le listener de cet
142 142
143 Avec **GetX**, si vous joignez deux variables, `GetX ()` (similaire à `Observer ()`), ne se reconstruira que si cela implique un réel changement d'état. 143 Avec **GetX**, si vous joignez deux variables, `GetX ()` (similaire à `Observer ()`), ne se reconstruira que si cela implique un réel changement d'état.
144 144
145 -### Déclaration d'une variable réactive 145 +### Declaration d une variable reactive
146 146
147 Vous avez 3 façons de transformer une variable en "observable". 147 Vous avez 3 façons de transformer une variable en "observable".
148 148
@@ -173,7 +173,7 @@ final myMap = Rx<Map<String, int>>({}); @@ -173,7 +173,7 @@ final myMap = Rx<Map<String, int>>({});
173 final user = Rx<User>(); 173 final user = Rx<User>();
174 ``` 174 ```
175 175
176 -3 - TLa troisième approche, plus pratique, plus facile et préférée, ajoutez simplement **`.obs`** comme propriété de votre` valeur`: 176 +3 - La troisième approche, plus pratique, plus facile et préférée, ajoutez simplement **`.obs`** comme propriété de votre` valeur`:
177 177
178 ```dart 178 ```dart
179 final name = ''.obs; 179 final name = ''.obs;
@@ -188,7 +188,7 @@ final myMap = <String, int>{}.obs; @@ -188,7 +188,7 @@ final myMap = <String, int>{}.obs;
188 final user = User().obs; 188 final user = User().obs;
189 ``` 189 ```
190 190
191 -##### Avoir un état réactif, c'est facile. 191 +##### Avoir un etat reactif, c est facile.
192 192
193 Comme nous le savons, _Dart_ se dirige maintenant vers _null safety_. 193 Comme nous le savons, _Dart_ se dirige maintenant vers _null safety_.
194 Pour être prêt, à partir de maintenant, vous devez toujours commencer vos variables _Rx_ avec une **valeur initiale**. 194 Pour être prêt, à partir de maintenant, vous devez toujours commencer vos variables _Rx_ avec une **valeur initiale**.
@@ -198,7 +198,7 @@ Pour être prêt, à partir de maintenant, vous devez toujours commencer vos var @@ -198,7 +198,7 @@ Pour être prêt, à partir de maintenant, vous devez toujours commencer vos var
198 Vous allez littéralement ajouter un "".obs"" à la fin de votre variable, et **c'est tout**, vous l'avez rendue observable, 198 Vous allez littéralement ajouter un "".obs"" à la fin de votre variable, et **c'est tout**, vous l'avez rendue observable,
199 et sa `.value`, eh bien, sera la _valeurInitiale_. 199 et sa `.value`, eh bien, sera la _valeurInitiale_.
200 200
201 -### Utilisation des valeurs de la vue 201 +### Utilisation des valeurs dans la Vue
202 202
203 ```dart 203 ```dart
204 // dans le controlleur 204 // dans le controlleur
@@ -287,7 +287,7 @@ list.addIf(item < limit, item); @@ -287,7 +287,7 @@ list.addIf(item < limit, item);
287 287
288 Sans décorations, sans générateur de code, sans complications :smile: 288 Sans décorations, sans générateur de code, sans complications :smile:
289 289
290 -Connaissez-vous l'application de counter de Flutter? Votre classe Controller pourrait ressembler à ceci: 290 +Connaissez-vous l'application 'counter' de Flutter? Votre classe Controller pourrait ressembler à ceci:
291 291
292 ```dart 292 ```dart
293 class CountController extends GetxController { 293 class CountController extends GetxController {
@@ -375,43 +375,43 @@ user().name; //notez que c'est la variable utilisateur, pas la classe (la variab @@ -375,43 +375,43 @@ user().name; //notez que c'est la variable utilisateur, pas la classe (la variab
375 ``` 375 ```
376 376
377 Vous n'êtes pas obligé de travailler avec des setters si vous ne le souhaitez pas. vous pouvez utiliser les API «assign» et «assignAll». 377 Vous n'êtes pas obligé de travailler avec des setters si vous ne le souhaitez pas. vous pouvez utiliser les API «assign» et «assignAll».
378 -L'API «assign» effacera votre liste et ajoutera un seul objet que vous souhaitez y démarrer. 378 +L'API «assign» effacera votre liste et ajoutera un seul objet que vous souhaitez.
379 L'API "assignAll" effacera la liste existante et ajoutera tous les objets itérables que vous y injecterez. 379 L'API "assignAll" effacera la liste existante et ajoutera tous les objets itérables que vous y injecterez.
380 380
381 ### Pourquoi je dois utiliser .value 381 ### Pourquoi je dois utiliser .value
382 382
383 -We could remove the obligation to use 'value' to `String` and `int` with a simple decoration and code generator, but the purpose of this library is precisely avoid external dependencies. We want to offer an environment ready for programming, involving the essentials (management of routes, dependencies and states), in a simple, lightweight and performant way, without a need of an external package. 383 +Nous pourrions supprimer l'obligation d'utiliser 'value' pour `String` et` int` avec une simple décoration et un générateur de code, mais le but de cette bibliothèque est précisément d'éviter les dépendances externes. Nous souhaitons proposer un environnement prêt à la programmation, impliquant l'essentiel (gestion des routes, des dépendances et des états), de manière simple, légère et performante, sans avoir besoin d'un package externe.
384 384
385 -You can literally add 3 letters to your pubspec (get) and a colon and start programming. All solutions included by default, from route management to state management, aim at ease, productivity and performance. 385 +Vous pouvez littéralement ajouter 3 lettres à votre pubspec (get) et un signe deux-points et commencer la programmation. Toutes les solutions incluses par défaut, de la gestion des routes à la gestion des états, visent la facilité, la productivité et la performance.
386 386
387 -The total weight of this library is less than that of a single state manager, even though it is a complete solution, and that is what you must understand. 387 +Le poids total de cette bibliothèque est inférieur à celui d'un seul gestionnaire d'état, bien qu'il s'agisse d'une solution complète, et c'est ce que vous devez comprendre.
388 388
389 -If you are bothered by `.value`, and like a code generator, MobX is a great alternative, and you can use it in conjunction with Get. For those who want to add a single dependency in pubspec and start programming without worrying about the version of a package being incompatible with another, or if the error of a state update is coming from the state manager or dependency, or still, do not want to worrying about the availability of controllers, whether literally "just programming", get is just perfect. 389 +Si vous êtes dérangé par `.value`, et comme un générateur de code, MobX est une excellente alternative, et vous pouvez l'utiliser en conjonction avec Get. Pour ceux qui veulent ajouter une seule dépendance dans pubspec et commencer à programmer sans se soucier de l'incompatibilité de la version d'un package avec un autre, ou si l'erreur d'une mise à jour d'état vient du gestionnaire d'état ou de la dépendance, ou encore, ne veulent pas s'inquiéter de la disponibilité des contrôleurs, que ce soit littéralement "juste de la programmation", get est tout simplement parfait.
390 390
391 -If you have no problem with the MobX code generator, or have no problem with the BLoC boilerplate, you can simply use Get for routes, and forget that it has state manager. Get SEM and RSM were born out of necessity, my company had a project with more than 90 controllers, and the code generator simply took more than 30 minutes to complete its tasks after a Flutter Clean on a reasonably good machine, if your project it has 5, 10, 15 controllers, any state manager will supply you well. If you have an absurdly large project, and code generator is a problem for you, you have been awarded this solution. 391 +Si vous n'avez aucun problème avec le générateur de code MobX, ou si vous n'avez aucun problème avec le code standard BLoC, vous pouvez simplement utiliser Get pour les routes et oublier qu'il a un gestionnaire d'état. Get SEM et RSM sont nés par nécessité, mon entreprise avait un projet avec plus de 90 contrôleurs, et le générateur de code a simplement pris plus de 30 minutes pour terminer ses tâches après un Flutter Clean sur une machine raisonnablement bonne, si votre projet il a 5, 10, 15 contrôleurs, n'importe quel gestionnaire d'état vous suffira bien. Si vous avez un projet d'une taille absurde et que le générateur de code est un problème pour vous, cette solution vous a été attribuée.
392 392
393 -Obviously, if someone wants to contribute to the project and create a code generator, or something similar, I will link in this readme as an alternative, my need is not the need for all devs, but for now I say, there are good solutions that already do that, like MobX. 393 +Évidemment, si quelqu'un veut contribuer au projet et créer un générateur de code, ou quelque chose de similaire, je vais créer un lien dans ce readme comme alternative, mon besoin n'est pas le besoin de tous les développeurs, mais pour l'instant je dis q'il y a de bonnes solutions qui font déjà cela, comme MobX.
394 394
395 ### Obx() 395 ### Obx()
396 396
397 -Typing in Get using Bindings is unnecessary. you can use the Obx widget instead of GetX which only receives the anonymous function that creates a widget.  
398 -Obviously, if you don't use a type, you will need to have an instance of your controller to use the variables, or use `Get.find<Controller>()` .value or Controller.to.value to retrieve the value. 397 +Les types dans Get à l'aide de Bindings ne sont pas nécessaires. Vous pouvez utiliser le widget Obx, au lieu de GetX, qui ne reçoit que la fonction anonyme qui crée un widget.
  398 +Évidemment, si vous n'utilisez pas de type, vous devrez avoir une instance de votre contrôleur pour utiliser les variables, ou utiliser `Get.find <Controller> ()` .value ou Controller.to.value pour récupérer la valeur .
399 399
400 ### Workers 400 ### Workers
401 401
402 -Workers will assist you, triggering specific callbacks when an event occurs. 402 +Les 'workers' vous assisteront, déclenchant des callbacks spécifiques lorsqu'un événement se produit.
403 403
404 ```dart 404 ```dart
405 -/// Called every time `count1` changes.  
406 -ever(count1, (_) => print("$_ has been changed")); 405 +/// Appelé à chaque fois que «count1» change.
  406 +ever(count1, (_) => print("$_ a été modifié"));
407 407
408 -/// Called only first time the variable $_ is changed  
409 -once(count1, (_) => print("$_ was changed once")); 408 +/// Appelé uniquement la première fois que la variable est modifiée
  409 +once(count1, (_) => print("$_ a été changé une fois"));
410 410
411 -/// Anti DDos - Called every time the user stops typing for 1 second, for example. 411 +/// Anti DDos - Appelé chaque fois que l'utilisateur arrête de taper pendant 1 seconde, par exemple.
412 debounce(count1, (_) => print("debouce$_"), time: Duration(seconds: 1)); 412 debounce(count1, (_) => print("debouce$_"), time: Duration(seconds: 1));
413 413
414 -/// Ignore all changes within 1 second. 414 +/// Ignore toutes les modifications en 1 seconde.
415 interval(count1, (_) => print("interval $_"), time: Duration(seconds: 1)); 415 interval(count1, (_) => print("interval $_"), time: Duration(seconds: 1));
416 ``` 416 ```
417 All workers (except `debounce`) have a `condition` named parameter, which can be a `bool` or a callback that returns a `bool`. 417 All workers (except `debounce`) have a `condition` named parameter, which can be a `bool` or a callback that returns a `bool`.