Задать вопрос
shakiriker
@shakiriker

Реагировать на эквивалентные хуки для ComponentWillMount Задать?

Я посмотрел здесь, но выбранный ответ не отвечает на вопрос. Я ищу componentWillMount()эквивалент для выполнения логики, аналогичной:

useEffect(() => {
  if (condition) {
    // do stuff
  }
}, []);


Проблема с вышеупомянутым состоит в том, что компонент выполняет рендеринг в течение доли секунды перед выполнением useEffectблока кода.

Есть ли способ обойти это? Без использования useEffect в основном Appкомпоненте или создания пользовательского хука?
  • Вопрос задан
  • 109 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Во-первых componentWillMount не рекомендован к использованию. Во-вторых, он никак не защитит вас от дополнительного вызова render, если речь идет о выполнении асинхронной операции, а для синхронных он и не нужен.
Смело используйте componentDidMount и useEffect.

А от лишних вычислений можно огородиться, например, так:
if (!someCondition) return null;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@SANTA2112
Попробуй
useLayoutEffect(() => {
  if (condition) {
    // do stuff
  }
}, []);

частичный эквивалент
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы