Новые хуки useTransition и useDeferredValue в React 18

  Рет қаралды 23,609

Михаил Непомнящий

Михаил Непомнящий

Күн бұрын

Пікірлер: 59
@dirty_arkady
@dirty_arkady 2 жыл бұрын
Канал определенно обделен просмотрами, очень хорошая подача материала!
@КонстантинТарасов-к6щ
@КонстантинТарасов-к6щ Жыл бұрын
На мой взгляд подача недостаточно хорошая. Даже в доке реакта намного понятнее и проще изложены концепты.
@etatevosian
@etatevosian 2 жыл бұрын
Очень понравился канал. Очень мало в сети подобных доступных к понимаю материалов. Спасибо автору!
@lightinthedark5708
@lightinthedark5708 2 жыл бұрын
Михаил, ценю Вас и Ваш канал за доступное и понятное объяснение. Спасибо за видео.
@ivanoliinyk8404
@ivanoliinyk8404 2 жыл бұрын
Дуже дивно чому так мало переглядів та вподобайок, але не зупиняйся ми це виправимо)))
@AlexGabber
@AlexGabber 2 жыл бұрын
Очень простое и наглядное объяснение. Спасибо большое!
@john-weekend
@john-weekend Жыл бұрын
Михаил благодарю за чёткое доходчивое видео, я с лёгкостью усвоил данный материал! Было интересно и полезно! 🎉
@maria-kuznetsova-s
@maria-kuznetsova-s 2 жыл бұрын
Рада, что нашла это видео. Отличное и доступное объяснение! На русском языке не так много хороших видео о фичах 18 версии react'а. Успехов вам!
@WinchesterD
@WinchesterD Жыл бұрын
Спасибо за видео, готовлюсь к интервью по Реакту, будет что рассказать. :)
@МасияГусейнов-ъ5е
@МасияГусейнов-ъ5е Жыл бұрын
лучшее объяснение конкуретного режима, спасибо за работу
@unknown.6914
@unknown.6914 10 ай бұрын
Спасибо, за полезный контент Михаил
@SergAlexson
@SergAlexson 2 жыл бұрын
Миша, спасибо за видео! Все подробно и доступно разжёвано)
@koala2077
@koala2077 2 жыл бұрын
Спасибо за ролик. Читал статьи насчет конкурентного режима но так и не понимал до конца что это такое. Ваше видео хорошо объясняет эту концепцию)
@fizzbuzz5807
@fizzbuzz5807 2 жыл бұрын
Большое спасибо! Вот вам комментарий, лайк и подписка!
@krohinri
@krohinri 2 жыл бұрын
Миша, спасибо! Давай еще!
@АйдарЯлаев-ь2ш
@АйдарЯлаев-ь2ш 2 жыл бұрын
Познавательно, лайк)
@Moishe_Rubinstein
@Moishe_Rubinstein 2 жыл бұрын
Привет из Харькова!
@mishanep
@mishanep 2 жыл бұрын
Привет из Малаги.
@dr_morpho
@dr_morpho 2 жыл бұрын
Супер! Спасибо вам🤝
@АлександрМелянюк-ц9ю
@АлександрМелянюк-ц9ю 2 жыл бұрын
Спасибо!
@vladvoloshenko5701
@vladvoloshenko5701 2 жыл бұрын
спасибо за контент, огонь!!
@WebEnv
@WebEnv 2 жыл бұрын
Оч доступно, спасибо!
@ЮрийЧехов-щ5р
@ЮрийЧехов-щ5р 2 жыл бұрын
Очень мало лайков))Подача отличная, приятно слушать вас)
@A.Floatrx
@A.Floatrx 2 жыл бұрын
также рекомендую ознакомиться с такими паттернами как debounce & throttle ))) до выхода этих хуков юзали именно их...
@The14Some1
@The14Some1 2 жыл бұрын
Мне кажется, и после выхода этих хуков продолжат. Тут это выглядит как не очень контроллируемая полумера. У автора по-прежнему тормозит ввод, тогда как при debounce/throttle можно добиться совершенно нормального поведения даже на очень тормозном компьютере.
@dimahinev
@dimahinev 2 жыл бұрын
Мое уважение 🎩
@irinal7766
@irinal7766 2 жыл бұрын
Отличнейший канал!
@NeoCoding
@NeoCoding Жыл бұрын
тоже в копилку, грасиас
@marsiki_official
@marsiki_official 2 жыл бұрын
Спасибо за видео, немного не по теме вопрос, вы делаете акцент на том что инпут не управляемый, а в чем отличие если бы он был управляемый ?🙏
@mishanep
@mishanep 2 жыл бұрын
Мы отдельно хранили его значение в стейте и спускали бы его на поле value для инпута. В принципе можно и с управляемым сделать, просто не понижать приоритет для стейта введенного значения.
@Ivanesenses
@Ivanesenses 2 жыл бұрын
Лайк неглядя!
@МикитаЛисанюк
@МикитаЛисанюк 2 жыл бұрын
Интересно как это будет работать когда у нас данные, которые мы получаем с AJAX запросов, будут лететь в redux стору. И соответственно перерендер компонента будет форсить useSelector, а не изменение стейда компонента. Как пример, такая же ситуация как на видео, но фильтрация у нас происходит на стороне бэка
@A.Floatrx
@A.Floatrx 2 жыл бұрын
используйте debounce для оптимизации запросов...
@ЕгорЛазука-й1э
@ЕгорЛазука-й1э Жыл бұрын
Спасибо
@onevermore
@onevermore 2 жыл бұрын
спасибо!
@Joi-w2t
@Joi-w2t 10 ай бұрын
Привет! корректно ли оборачивать, например, отправку на сервер данных через axios в startTransition: const onSubmit = (values: z.infer) => { startTransition(() => { login(values) }) }, и да, в данном случае я использую Nextjs, здесь "login" это сервер экшн. Но все равно интересно
@deriirostyslav2335
@deriirostyslav2335 Жыл бұрын
Михаил добрый день, ищу видео как взаимодействовать с несколькими страницами в приложении? и как масштабировать приложения. Допустим нажам на кнопку на первой странице, передать данные (избранной карточки на другую) и на оборот, и допустим ввести данные на второй странице и создать из них список на третьей, и это всё разные страницы. ничего не помогает, всё перепробывал. благодарю!
@LRXAORLOV
@LRXAORLOV 2 жыл бұрын
А если бы мы положили search в useDeferredValue, и фильтровали по deferredSearch ?
@suslikest3708
@suslikest3708 2 жыл бұрын
лойс!
@IanNerovnyi
@IanNerovnyi Жыл бұрын
Все равно ведь дебаунс и тротлинг во всем выигрывает, как мне показалось. Есть ли тогда какой-то кейс, где все же может быть предпочительнее использовать useTransition? Мне кажется, что нет.. Очень жду дебаус и тротлинг хуки в Реакте из коробки)) Совсем не понимаю, почему до сих пор не решили это добавить
@profesor08
@profesor08 Жыл бұрын
Штука однозначно полезная, но от проблемы не избавляет, а лишь приуменьшает ее, и на каком-то средненьком телефоне, будет проявляться довольно заметно. Чтоб полностью избавиться от блокировки инпута, надо несколько иначе формировать компоненты, чтоб список рендерился отдельно, инпут отдельно, и данные считались отдельно. А сам пользовательский ввод надо как-то тротлить, например с помощью функций из lodash. И вот тогда даже на средненьких телефонах все будет круто.
@sharkman6434
@sharkman6434 Жыл бұрын
а в чём смысл и преимущество ренедерить отдельно список, инпут и счтёт данных подскажите пожалуйста )
@romandeveloper7720
@romandeveloper7720 Жыл бұрын
Таким образом, хуки помогают сделать мини-дебаунсинг, если так можно выразиться) Верно?
@mishanep
@mishanep Жыл бұрын
Что-то вроде него, да.
@sivkaburka1062
@sivkaburka1062 2 жыл бұрын
Досмотрел до 11:20
@orionpro79
@orionpro79 2 жыл бұрын
а дальше что? Инет вырубили?)
@your_hero_n1
@your_hero_n1 10 ай бұрын
некорректно подал информацию. Может за год что и изменилось, но в доке чётко сказано, что startTransition и его хук не предназначены для того, чтобы помечать, как переходы изменения в инпутах. Поэтому у автора и тормозил пользовательский ввод даже после применения новой функции.
@codokit
@codokit 2 жыл бұрын
Ещё вариант решения проблем с быстрым вводом - это тротлить пользовательский ввод.
@CJIu3eHb
@CJIu3eHb 2 жыл бұрын
Не тротлить, а дебонсить.
@MIHANIZM56
@MIHANIZM56 2 жыл бұрын
Тоже самое хотел предложить. Интересно имеет ли смысл связка дебаунса и стартТранзишн
@user-888azim-97
@user-888azim-97 Жыл бұрын
нужно было разделить на 2 видео ((((( просмотров бы больше было, и денег бы больше было, хотя конечно от рф теперь нет монетизации, но всё равно удобнее было бы.
@mishanep
@mishanep Жыл бұрын
У меня на канале никогда не было рекламы =) Ютуб конечно может и сам вставки делать, не спрашивая автора. Но монетизацию на данном канале я не включал.
@Илья-ж8ч8о
@Илья-ж8ч8о 11 ай бұрын
Эм, ну поиск на клиенте это тоже не бест практис ) Ну и фильрацию по каждому клику делать тоже не очч, наверно сюда лучше подошел дебаунсе?
@iGotton
@iGotton 2 жыл бұрын
+
@Garry_Levin
@Garry_Levin 6 ай бұрын
Видео может и неплохое, но без исходного кода не имеет никакого смысла. Дизлайк.
@chintore
@chintore Жыл бұрын
useDeferredValue работает в связке с мемоизацией. При изменении в инпуте он выдает значение с прошлого успешного рендеринга (коммита) и запускает новый рендеринг с уже актуальным значением. Соответственно после изменения инпута происходит сразу рендеринг инпута и МЕМОИЗИРОВАННОГО результата для ресурсозатратной части. Сразу после этого реакт начинает еще один рендеринг, но теперь useDeferredValue возвращает актуальное значение. После готовности второго рендеринга актуальный результат отрисовывается. Без мемоизации useDeferredValue бесполезен, и даже вреден.
@chintore
@chintore Жыл бұрын
Новые изменения инпута могут прервать прошлые незаконченные рендеринги и запустить новый процесс. Соответственно ресурсозатратные вычисления ПОЛНОСТЬЮ будут производиться не для каждого введенного символа, а только для последнего изменения. Это все хорошо показано на схеме в видео. Логика очень схожа с debouncing.
@vasyok92
@vasyok92 2 жыл бұрын
Спасибо)
@Kotovar
@Kotovar 6 ай бұрын
Спасибо)
НОВЫЙ REACT 18 ВЫШЕЛ
20:55
Ulbi TV
Рет қаралды 109 М.
Кастомные React-Хуки, useToggle, useLocalStorage
22:20
Михаил Непомнящий
Рет қаралды 20 М.
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
Предзагрузка данных через роутинг
24:48
Михаил Непомнящий
Рет қаралды 30 М.
Зачем на самом деле нужен хук useCallback
8:33
Михаил Непомнящий
Рет қаралды 45 М.
useDeferredValue | Лучшая фича React 18 | Преобрази UX одной строчкой
15:01
Евгений Паромов | Front-end
Рет қаралды 7 М.
React 19: Новые хуки, которые вы ждали
21:13
Владилен Минин
Рет қаралды 15 М.
useTransition и useDeferredValue хуки в React
17:47
easydev
Рет қаралды 2 М.
Learn React Hooks: useTransition - Simply Explained!
10:41
Cosden Solutions
Рет қаралды 31 М.
Клиент Apollo GraphQL для React-приложений
44:11
Михаил Непомнящий
Рет қаралды 30 М.
Redux Toolkit для управления состоянием в React-приложении
1:00:09
Михаил Непомнящий
Рет қаралды 207 М.
#5: React Hooks - useCallback
23:54
Archakov Blog
Рет қаралды 52 М.
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН