Я был не прав по поводу 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мы сдохнем, письменность останется
Who has won ?? 😀 #shortvideo #lizzyisaeva
00:24
Lizzy Isaeva
Рет қаралды 65 МЛН
🤔Какой Орган самый длинный ? #shorts
00:42
УГАДАЙ ГДЕ ПРАВИЛЬНЫЙ ЦВЕТ?😱
00:14
МЯТНАЯ ФАНТА
Рет қаралды 3,9 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 60 МЛН
Хочу стать Junior React
18:42
Y_LAB University
Рет қаралды 4,6 М.
Почему я не использую хук useReducer? | React Hooks
30:27
Dusty Frontend. Знакомство с Express
1:36:43
Alexander Shleyko
Рет қаралды 216
Пишем кастомное ESLint правило для TypeScript
28:08
ПИШЕМ СИГНАЛЫ С НУЛЯ | JAVASCRIPT | SIGNALS
43:03
Ayub Begimkulov
Рет қаралды 6 М.
Разбираемся в React JSX
13:49
Ayub Begimkulov
Рет қаралды 8 М.
Who has won ?? 😀 #shortvideo #lizzyisaeva
00:24
Lizzy Isaeva
Рет қаралды 65 МЛН