ЧТО ТАКОЕ КОЛБЭК РЕФЫ И КАК Я ИХ ИСПОЛЬЗУЮ | CALLBACK REF | REACT HOOKS

  Рет қаралды 8,714

Ayub Begimkulov

Ayub Begimkulov

Күн бұрын

В данном видео мы поговорим про колбэк рефы (callback refs). В первую очередь детально разберем, что это такое и как они работают. Затем посмотрим на то, как их можно применять для написания других хуков и решения реальных проблем в коде.
Код из видео:
github.com/Ayub-Begimkulov/yo...
Видео про useEvent:
• САМЫЙ ПОЛЕЗНЫЙ хук для...
Telegram канал:
telegram.me/ayub_begimkulov_c...
Таймкоды:
00:00-01:39 - Что такое колбек рефы?
01:39-02:56 - Проблема колбек рефами
02:56-06:44 - Понимаем проблему
06:44-08:46 - Смотрим на обычные рефы
08:46-09:45 - Решение
09:45-12:31 - Когда вызываются колбек рефы
12:31-15:34 - Проблемы с обычными рефами
15:34-20:36 - Решаем проблему через callback ref
20:36-25:47 - Объединение рефов
25:47-26:13 - Заключение

Пікірлер: 68
@spoonjeee4785
@spoonjeee4785 Жыл бұрын
Вот подобных видео пожалуйста побольше, очень полезно
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за фидбэк! Буду продолжать.
@sonnytonight414
@sonnytonight414 Жыл бұрын
Аюб, огромное спасибо тебе за знания, которыми ты делишься!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не за что!
@user-vm2db5cq1g
@user-vm2db5cq1g Жыл бұрын
Спасибо за подобные видео! очень интересный контент на канале!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
не за что!
@v.demchenko
@v.demchenko Жыл бұрын
Доступно обьясняешь. Показал проблему детально, дальше решение проблемы.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за фидбэк!
@kirillpodolinniy309
@kirillpodolinniy309 Жыл бұрын
Круто, что поставил превью для видео!)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Раньше вроде тоже превьюшки были)
@user-dc1pz4ud9c
@user-dc1pz4ud9c 6 ай бұрын
Вспомнил про это видео через несколько месяцев как его посмотрел, когда увидел место в uikit где можно смерджить рефы
@daniilnem9145
@daniilnem9145 Жыл бұрын
Как всегда очень полезное видео ❤
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за фидбэк!
@vakhr
@vakhr 11 ай бұрын
Круто, спасибо за ролик, про рефы очень интересно
@ayub_begimkulov
@ayub_begimkulov 11 ай бұрын
Рад, что понравилось!
@Victor-il9gm
@Victor-il9gm Жыл бұрын
спасибо за контент! Не до конца понял про combinedRed. в данном кейсе, для человека, который не сталкивался с такой проблемой, тяжело придумать абстракцию проблемы. Так же про forwardRed комментарий типа: 'объяснять не буду, вы уже и так, наверное, знаете.' - не знаю =) а так работа огонь! однозначно в будущем на это видео вернусь. спасибо!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Проблема обычно заключается в том, что нужно повесить 2 или больше рефов на один элемент, а кейсы реально разные бывают. Про форвард реф - это просто механизм, который позволяет передавать проп `ref` в кастомные компоненты. А так, спасибо за фидбэк! Постараюсь уделять больше внимания деталям в будущем.
@DmitryKorovin-rr9hl
@DmitryKorovin-rr9hl Жыл бұрын
Интересное видео, спасибо за контент
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не за что!
@beingmyself3706
@beingmyself3706 3 ай бұрын
Как раз было несколько задач, где необходимо было 2 рефа вешать на дом элемент, и я ломал голову и не знал что делать и пытался переделать логику под один реф) Спасибо большое за решение!
@user-rm7oz4xu3k
@user-rm7oz4xu3k Жыл бұрын
очень полезно, спасибо!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
не за что!
@from_brest2631
@from_brest2631 Жыл бұрын
Интересный выпуск, лукас
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@user-qb7jg4hx5l
@user-qb7jg4hx5l 9 ай бұрын
спасибо
@mercury_2379
@mercury_2379 Жыл бұрын
комментарий в поддержку канала
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@lord8360
@lord8360 Жыл бұрын
Норм видос, слушаю фоном и пилю колор пикер для вскода с oklch
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Задача прикольная!
@user-kj6go4ft4j
@user-kj6go4ft4j Жыл бұрын
🎉
@kimanowka
@kimanowka Жыл бұрын
Сделай обзор на новую доку реакта
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
А чего именно там обозревать то? Кажется просто лучше все описали)))
@fedordostoevskiy4209
@fedordostoevskiy4209 Жыл бұрын
👍👍👍, да без шуток в ролике информации, как в десятках статей, которые ещё найти надо и перевести. 🛰🛸🚀
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад, что понравилось!
@chistyakofff
@chistyakofff Жыл бұрын
По последнему разбору с combinedRef: почему мы не можем взять ref, который приходит в Input и на нем выводить ref.current.getBoundingClientRect() и передавать его же в сам , не создавая при этом ни inputRef, ни combinedInputRef? По реализации так работает, но TS выдает ошибку... Можешь объяснить этот момент пожалуйста Ошибка такая: Свойство "current" не существует в типе "((instance: HTMLInputElement | null) => void) | MutableRefObject". Хотя если вывести сам ref, то можно убедиться, что свойство current там есть.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Это происходит потому, что ref, который передается в Input - опциональный. Там я использую тип React.ForwardedRef, если посмотреть на него в типизации реакт, то можно увидеть вот такое: type ForwardedRef = ((instance: T | null) => void) | MutableRefObject | null;
@siparat842
@siparat842 Жыл бұрын
Хотелось бы узнать, по каким книгам, курсам и т.д. ты изучал реакт (продвинутый). Если бы у тебя были курсы, прикупил бы несколько
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Курсов пока нету, но активно думаю над созданием учебного материала и как вообще все лучше построить. По поводу изучения - на самом деле много чего на практике узнал, делал различные библиотеки и решал не типичные задачи. Там как раз и было нужно все это.
@masserrackheim5358
@masserrackheim5358 Жыл бұрын
@@ayub_begimkulov я никогда курсы не покупал (потому что проще почитать документацию), но твои куплю. Нужны именно рабочие кейсы, как в этом видео
@pollstetchem
@pollstetchem Жыл бұрын
@@ayub_begimkulov Сам себе придумывал задачки? Хочется применять знания на практике))
@sharkman6434
@sharkman6434 11 ай бұрын
@@ayub_begimkulov Аюб спасибо за твои видео, за канал и за то что бесплатно такой ценной информацией делишься, я всё пересматриваю и всё руками делаю сижу и себе выписываю все в гист чтоб под рукой было. Делай платные курсы так как такой уровень как у тебя пока в рус ютубе нет ни у кого, из реальных практикующих людей из продакшена знаю только тебя и еще 2 человека и это на весь ютуб и рус инфополе
@TheWorldPeace
@TheWorldPeace Жыл бұрын
7:45 а что не так? Вроде все работает как планировали? Или я что-то не так понял. Изменяется count изменяется и actualRef.
@ayub_begimkulov
@ayub_begimkulov 11 ай бұрын
Да, все правильно работает. Я хотел показать, что инвалидация старого и инициализация нового рефа происходят даже с обычными рефами. Просто это обычно заметно только с callback рефами из-за отсутствия мемоизации по дефолту.
@gloshi1337
@gloshi1337 Жыл бұрын
А можно в некоторых случаях функцию просто выносить за компонент? Компонент будет перерисовывать а функция нет, так же тоже можно?
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, конечно.
@andrTaylor
@andrTaylor 10 ай бұрын
То есть получается с помощью cbRef можно запустить действие, которое будет вызвано ещё раньше, чем useLayoutEffect и тогда это будет реализация аналогичная componentWillMount?)
@ayub_begimkulov
@ayub_begimkulov 10 ай бұрын
нет, это будет та же реализация componentDidMount, просто произойдет раньше, чем useLayoutEffect)
@denmccormik7654
@denmccormik7654 9 ай бұрын
@@ayub_begimkulov но ведь componentDidMount это первый useEffect, а cbRef вызывается до того как наш компонент отобразится на экране, следовательно до useEffect. Разве нет? Отсюда еще один вопрос: mounting это процесс Layout и так далее и он после mounting происходит Paint в браузере?
@rustamakhmetyanov4404
@rustamakhmetyanov4404 Жыл бұрын
Дружище, спасибо за контент. Да местами еще не понимаю, но уверен со временем буду возвращаться к твоим хукам и "хакам".
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за фидбэк! Я думаю тут главное понимать, какие вообще есть возможности, чтобы когда возникла проблема - можно было быстро загуглить.
@promoabys
@promoabys Жыл бұрын
Для меня это крайне специфичные какие-то ситуации. Плохо понимаю при реализации чего это может потребоваться
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
тут согласен, поэтому под конец плейлиста по хукам уже разбираем это все.
@deantek
@deantek Жыл бұрын
Недавно тоже пришел к этому, была задача сделать сделать автовоспроизведение множества видео, часа 2 потратил по незнанию :D спасибо за видео
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, почему-то про колбэк рефы мало где говорят, хотя вещь полезная.
@spendilpa1559
@spendilpa1559 9 ай бұрын
"какразтаки" через слово
@CyberGenius777
@CyberGenius777 Жыл бұрын
Тебя нужно смотреть на 0.75
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Я знаю есть люди кто и на 1.5 смотрит... но намек я понял)
@CJIu3eHb
@CJIu3eHb Жыл бұрын
@@ayub_begimkulov 1.5/1.6 максимум, и то приходится останавливать/перематывать. Потому что темы обычно мудреные поднимаешь. Но подстраиваться ни под кого не надо по скорости, раз ее регулировка есть. Еще Антона Ларичева тоже приходится притормаживать до 1.6/1.8. Остальных где-то до 1.8 иногда. Если англоязычный ресурс - там сложнее, вплоть до 1.0.
@user-zh5kg2op4h
@user-zh5kg2op4h 9 ай бұрын
Да нормально, я на 2× посмотрел. Когда тараторят или невнятно, приходится на 1,5× снижать (обычно на английском, кино иногда).
@user-ox4yl6gu3u
@user-ox4yl6gu3u 10 ай бұрын
Не комфортная скорость изложения.
@ayub_begimkulov
@ayub_begimkulov 9 ай бұрын
Спасибо за фидбэк! Работаю над этим моментом.
@user-ox4yl6gu3u
@user-ox4yl6gu3u 9 ай бұрын
@@ayub_begimkulov а материал отличный👍
@batm1x
@batm1x Жыл бұрын
Превью супер
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@user-uk5tj3qn5q
@user-uk5tj3qn5q Жыл бұрын
[24:29] useComposedRefs
@ayub_begimkulov
@ayub_begimkulov 11 ай бұрын
Кто useForkRef называет)
Продвинутое использования React с TypeScript
40:42
Swift. Dependency Injection Основы
34:24
Программирование - интерес жизни
Рет қаралды 169
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 52 МЛН
Чай будешь? #чайбудешь
00:14
ПАРОДИИ НА ИЗВЕСТНЫЕ ТРЕКИ
Рет қаралды 2,7 МЛН
В ДЕТСТВЕ СТРОИШЬ ДОМ ПОД СТОЛОМ
00:17
SIDELNIKOVVV
Рет қаралды 3,2 МЛН
月光第一楽章 独学で弾いてみた。
5:34
アラヤT.T.
Рет қаралды 97
ВОЗВРАЩЕНИЕ! ГДЕ БЫЛ? ДАЛЬНЕЙШИЕ ПЛАНЫ
14:39
Урок 2. Введение в React Hooks: useEffect
5:34
Владилен Минин
Рет қаралды 81 М.
Разбираемся в React JSX
13:49
Ayub Begimkulov
Рет қаралды 8 М.
#3: React Hooks - useRef
27:52
Archakov Blog
Рет қаралды 63 М.
Знакомство с Zustand - лучшей заменой Redux
29:35
Михаил Непомнящий
Рет қаралды 28 М.
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 52 МЛН