Showing
1 changed file
with
11 additions
and
11 deletions
@@ -72,7 +72,7 @@ var name = 'Jonatas Borges'.obs; | @@ -72,7 +72,7 @@ var name = 'Jonatas Borges'.obs; | ||
72 | Нет, вам не нужен `StreamBuilder`, но насчёт статических классов вы правы. | 72 | Нет, вам не нужен `StreamBuilder`, но насчёт статических классов вы правы. |
73 | 73 | ||
74 | Что ж, в представлении во Flutter, когда мы хотим изменить конкретный виджет, приходится писать много шаблоного кода. | 74 | Что ж, в представлении во Flutter, когда мы хотим изменить конкретный виджет, приходится писать много шаблоного кода. |
75 | -With **GetX** you can also forget about this boilerplate code. | 75 | +C **GetX** вы можете забыть о шаблонном коде. |
76 | 76 | ||
77 | `StreamBuilder( … )`? `initialValue: …`? `builder: …`? Nope, you just need to place this variable inside an `Obx()` Widget. | 77 | `StreamBuilder( … )`? `initialValue: …`? `builder: …`? Nope, you just need to place this variable inside an `Obx()` Widget. |
78 | 78 | ||
@@ -80,23 +80,23 @@ With **GetX** you can also forget about this boilerplate code. | @@ -80,23 +80,23 @@ With **GetX** you can also forget about this boilerplate code. | ||
80 | Obx (() => Text (controller.name)); | 80 | Obx (() => Text (controller.name)); |
81 | ``` | 81 | ``` |
82 | 82 | ||
83 | -_What do you need to memorize?_ Only `Obx(() =>`. | 83 | +_Что нужно запомнить?_ Только `Obx(() =>`. |
84 | 84 | ||
85 | -You are just passing that Widget through an arrow-function into an `Obx()` (the "Observer" of the _Rx_). | 85 | +Вы просто передаёте этот виджет через стрелочную функцию в `Obx()` ("Observer" в _Rx_). |
86 | 86 | ||
87 | -`Obx` is pretty smart, and will only change if the value of `controller.name` changes. | 87 | +`Obx` довольно умён и изменится только при изменении значения `controller.name`. |
88 | 88 | ||
89 | -If `name` is `"John"`, and you change it to `"John"` (`name.value = "John"`), as it's the same `value` as before, nothing will change on the screen, and `Obx`, to save resources, will simply ignore the new value and not rebuild the Widget. **Isn't that amazing?** | 89 | +Если `name` == `"John"`, и вы измените его на `"John"` (`name.value = "John"`), на экране ничего не изменится, так как это то же значение, что и раньше. `Obx` для экономии ресурсов просто проигнорирует новое значение, а не будет перестраивать виджет. **Разве это не потрясающе?** |
90 | 90 | ||
91 | -> So, what if I have 5 _Rx_ (observable) variables within an `Obx`? | 91 | +> Итак, что, если у меня есть 5 переменных _Rx_ (observable) в `Obx`? |
92 | 92 | ||
93 | -It will just update when **any** of them changes. | 93 | +Он просто обновится, когда **любой** из них изменится. |
94 | 94 | ||
95 | -> And if I have 30 variables in a class, when I update one, will it update **all** the variables that are in that class? | 95 | +> И если у меня есть 30 переменных в классе, когда я обновлю одну, обновятся ли **все** переменные этого класса? |
96 | 96 | ||
97 | -Nope, just the **specific Widget** that uses that _Rx_ variable. | 97 | +Нет, только **конкретный виджет**, который использует эту переменную _Rx_. |
98 | 98 | ||
99 | -So, **GetX** only updates the screen, when the _Rx_ variable changes it's value. | 99 | +Итак, **GetX** обновляет экран только тогда, когда переменная _Rx_ меняет свое значение. |
100 | 100 | ||
101 | ``` | 101 | ``` |
102 | final isOpen = false.obs; | 102 | final isOpen = false.obs; |
@@ -104,7 +104,7 @@ final isOpen = false.obs; | @@ -104,7 +104,7 @@ final isOpen = false.obs; | ||
104 | // NOTHING will happen... same value. | 104 | // NOTHING will happen... same value. |
105 | void onButtonTap() => isOpen.value=false; | 105 | void onButtonTap() => isOpen.value=false; |
106 | ``` | 106 | ``` |
107 | -### Advantages | 107 | +### Преимущества |
108 | 108 | ||
109 | **GetX()** helps you when you need **granular** control over what's being updated. | 109 | **GetX()** helps you when you need **granular** control over what's being updated. |
110 | 110 |
-
Please register or login to post a comment