169 похожих чатов

18 ответов

14 просмотров

Хуки — это функции. Ты их вызываешь в функции. Когда реакт вызывает твою функцию-компонент, все хуки вызываются по порядку сверху вниз. Каждый раз.

А как он вызывает их в соответствующем порядке? useEffect после маунта. Там есть специальный планировщик Scheduler? Он же отвечает за батчинг обновления стейта

Я думаю тут под капотом что-то вроде паттерна Observer, тоесть когда приходят новые параметры он автоматом перезапускает массив всех функций, подписанные на эти параметры.

const fn = () => { a() b() c() } В каком порядке будут вызваны функции? При чем тут шедулер и батчинг?

Прочитай те самые две статьи, если интересно, как на самом деле

https://kekpek.dev/chat-faq

Он имеет ввиду что-то вроде триггера должно стоять когда сработал render или return, поскольку useEffect отрабатывает после того как компонент отдал вёрстку на рендер.

const fn = () => { useState() useEffect() useRef() } fn() В каком порядке будут вызваны функции? При чем тут шедулер и батчинг?

Ну это действительно странно, тоесть получается useEffect срабатывает до того как отрендерился компонент?

Почитай статьи реально

Что ты понимаешь под рендером?

Что значит «срабатывает»? Такого термина нет. Вызывается он сразу, как только интерпретатор дошёл до строки, где происходит вызов

Переданная функция useEffectбудет запущена после того, как рендеринг будет зафиксирован на экране.  - ну немного неугадал на одну вложеность, useEffect видимо "откладывает" запуск переданного коллбека, а запускает его после того как сработал return

Будут вызваны поочередно, как при вызове обычной js-функции, только дальше Реакт делает свои фокусы под капотом и при выполнении данного компонента получаем в консоли useEffect(() => console.log('1. useEffect'), []) useLayoutEffect(() => console.log('2. useLayoutEffect'), []) useMemo(() => console.log('3. useMemo'), []) 3. useMemo 2. useLayoutEffect 1. useEffect

Ну делает и делает, пускай

Кстати, там про HOC и Hooks - очень годная статья https://www.robinwieruch.de/react-hooks-higher-order-components

но ведь memo это хок...

Ага

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта