Я был не прав по поводу useEffect… документация React тоже?

  Рет қаралды 4,904

Ayub Begimkulov

Ayub Begimkulov

Күн бұрын

В данном видео я расскажу, как я долго время ошибался в вопросе того, когда хук вызывается useEffect в React. Изначально планировалось сделать небольшое видео с объяснением своей ошибки, но результаты примеров показали мне то, что и в документации все объясняется тоже не совсем верно.
Discussion о синхронном react 18:
github.com/reactwg/react-18/d...
Issues о синхронности useEffect:
github.com/facebook/react/iss...
Видео про ref callbacks:
• ЧТО ТАКОЕ КОЛБЭК РЕФЫ ...
Telegram канал:
telegram.me/ayub_begimkulov_c...
Github с примерами кода из видео:
github.com/Ayub-Begimkulov/yo...
Таймкоды:
00:00-01:45 - В чем заключалась моя ошибка
01:45-03:40 - Где говорится о синхронном useEffect
03:40-04:22 - Сетап для примеров
04:22-06:05 - Код примера с user event
06:05-08:37 - Логи примера с user event
08:37-09:17 - Код примера с обновлением вне React
09:17-13:27 - Логи примера с обновлением вне React
13:27-15:31 - Код примера с реф колбэками
15:31-21:26 - Логи примера с реф колбэками
21:26-22:04 - Код примера с вложенным useEffect
22:04-24:21 - Логи примера с вложенным useEffect
24:21-25:53 - issues в GitHub на данную тему
25:53-27:04 - Выводы из урока и заключение

Пікірлер: 25
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
После просмотра данного видео заметил пару недочетов и ошибок: На 17:32 - “Макротаски before/after effect”, а не “микротаски”. На 19:09 - “Синхронным”, вместо “асинхронным”. Также в конце видео я забыл показать, как будет работать обновление внутри useEffect. *Mount:* render before effect microtask after effect microtask before effect macrotask after effect macrotask trigger update effect effect render effect before update microtask after update microtask before effect microtask after effect microtask before update macrotask after update macrotask before effect macrotask after effect macrotask *Update:* render before effect microtask after effect microtask before effect macrotask after effect macrotask trigger update effect render effect before update microtask after update microtask before effect microtask after effect microtask before update macrotask after update macrotask before effect macrotask after effect macrotask Как можно увидеть по логам вложенные обновления внутри useEffect тоже были синхронными, что выглядит очень интересно.
@segabelka8095
@segabelka8095 Жыл бұрын
Спасибо за видео!)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
не за что!
@jenek051
@jenek051 Жыл бұрын
Отличное видео🙏🤘спасибо
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не за что!
@javusscriptus7788
@javusscriptus7788 Жыл бұрын
Респект за исследование!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@mercury_2379
@mercury_2379 Жыл бұрын
комментарий в поддержку канала
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@YuryGoltsman
@YuryGoltsman Жыл бұрын
В большинстве случаев поведение не важно, но все же стоит знать, если что пойдет не по сценарию и нужно понять причину. Спасибо.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, все так и есть. Но после того, как уже наткнулся на кейс, интересно разобраться.
@YuryGoltsman
@YuryGoltsman Жыл бұрын
@@ayub_begimkulov интересно, а последовательность эффектов сохраняется? Особенно, если часть может быть исполнена асинхронно а последующие синхронно
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
​@@YuryGoltsman последовательность обязательно сохраняется. и в целом не может быть такого, что один эффект асинхронный, а другие синхронные. Иначе бы поведение вообще не предсказуемое было бы во многих кейсах))
@YuryGoltsman
@YuryGoltsman Жыл бұрын
@@ayub_begimkulov я тоже так подумал. Они, кажется, заявляли это условие на заре хуков
@user-he9og1fc6k
@user-he9og1fc6k Жыл бұрын
спасибо большое!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад помочь!
@WebDev_51
@WebDev_51 Жыл бұрын
Я не успеваю ничего.... Как Вы успеваете??? 😅
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Успеваю что?) За ходом мыслей сложно получается уследить?
@grenadier4702
@grenadier4702 Жыл бұрын
Получается, мы уже больше года пишем с таким повелением, и никто ничего не заметил? Видимо, это вовсе не breaking change был
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Все, что хоть как-то может повлиять на код - breaking change, и синхронность useEffect точно туда входит. Вопрос скорее в том, на сколько большую часть людей это все аффектит. В данном случае это скорее всего только библиотеки.
@user-kp5og5so7f
@user-kp5og5so7f 11 ай бұрын
Господи, где у этого видео замедление видео 😅
@rusfungame
@rusfungame Жыл бұрын
Давай видосы не по реакту, реакт сдохнет, js останется
@artifact1702
@artifact1702 Жыл бұрын
Скорее TS дорастет и станет заменой JS
@DikusEx
@DikusEx Жыл бұрын
Js сдохнет, ассемблер останется
@rusfungame
@rusfungame Жыл бұрын
@@DikusExмы сдохнем, письменность останется
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 13 МЛН
HAPPY BIRTHDAY @mozabrick 🎉 #cat #funny
00:36
SOFIADELMONSTRO
Рет қаралды 18 МЛН
Little girl's dream of a giant teddy bear is about to come true #shorts
00:32
What it feels like cleaning up after a toddler.
00:40
Daniel LaBelle
Рет қаралды 77 МЛН
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 4,4 М.
ТОП 6 ОШИБОК ПРИ РАБОТЕ С Redux Toolkit
22:53
Ayub Begimkulov
Рет қаралды 12 М.
ВОЗВРАЩЕНИЕ! ГДЕ БЫЛ? ДАЛЬНЕЙШИЕ ПЛАНЫ
14:39
This is the Only Right Way to Write React clean-code - SOLID
18:23
The Best Of The Internet (2022)
19:06
Daily Dose Of Internet
Рет қаралды 44 МЛН
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 13 МЛН