Skip to content

Commit 2a163bd

Browse files
boldureanfpetrakov
andauthored
Update src/content/learn/you-might-not-need-an-effect.md
Co-authored-by: Fedya Petrakov <jakephin2015@gmail.com>
1 parent 079549f commit 2a163bd

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/content/learn/you-might-not-need-an-effect.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ title: 'Возможно, вам не нужен Эффект'
2121

2222
## Как удалить лишние эффекты {/*how-to-remove-unnecessary-effects*/}
2323

24-
Есть два распространенных случая, когда эффекты не нужны:
24+
Есть два распространенных случая, когда эффекты ни к чему:
2525

2626
* **Вам не нужны Эффекты чтобы трансформировать данные для рендера.** Например, для фильтра списка перед тем, как отобразить его. Это не совсем эффективно. Когда вы обновляете состояние, React сначала вызовет функции вашего компонента для расчета того, что должно быть на экране. Затем, React ["фиксирует"](/learn/render-and-commit) текущие изменения в DOM обновляя экран, и уже после перечисленного выполнит Эффекты. Если Эффект *еще* и изменяет состояние компонента, то весь процесс начнётся заново! Чтобы избежать ненужных фаз рендеринга, трансформируйте все данные в начале ваших компонентов. Этот код будет автоматически выполнен повторно как только изменятся пропсы или состояние.
2727
* **Вам не нужны Эффекты для обработчиков событий.** Допустим вы хотите отправить POST-запрос на `/api/buy` и показать уведомление, как только пользователь приобретёт товар. Вы точно знаете что произошло в обработчике событий кнопки "Купить". К моменту выполнения эффекта вы не знаете, *что* сделал пользователь (например, какая кнопка была нажата). Вот почему предпочтительно обрабатывать пользовательские события в соответствующих обработчиках.

0 commit comments

Comments
 (0)