Skip to content

Instantly share code, notes, and snippets.

@DuudeXX8
Created July 19, 2020 20:49
Show Gist options
  • Save DuudeXX8/60ec5d07e2d12d7fa608f102393e5281 to your computer and use it in GitHub Desktop.
Save DuudeXX8/60ec5d07e2d12d7fa608f102393e5281 to your computer and use it in GitHub Desktop.
ответ на so
  1. Нет не гарантирует и не может гарантировать.Браузер "решает" перерисовать dom-дерево ПОСЛЕ того как все манипуляции со стейтом были выполнены или отложены это уже стейт решает как правильно обновить синхронно или асинхронно.Может и так и так.И после всех этих обновлений компонент завершает свою работу и возвращает готовый html (jsx) код.
  2. Все зависет от того что вы делаете в данном жизненном цикле.Если меняете стейт без условий внутри didUpdate то компонент вообше не будет отрисоватсья покажет ошибку что у вас бесконечный цикл.didUpdate вызывается сразу после обновления компонента ( не при первом рендере ) .А если внутри didmount изменить стейт события будет следуишие

Компонент рендерится первый раз. return возврашаеть новый DOM. componentDidMount вызывается и меняет стейт СИНХРОННО. Если меняетсья состояние то и соответсвенно метод render вызывается еще раз и возврашает новый JSX который заменяет старый. А браузер показывает только второй рендер, чтобы избежать мерцания.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment