Не делай такое с useState! Топ 5 ошибок junior React-разработчика

  Рет қаралды 52,683

Archakov Blog

Archakov Blog

Күн бұрын

Пікірлер: 172
@user-sq3jy1cx8x
@user-sq3jy1cx8x 9 күн бұрын
Как намучился с этим счетчиком, пытаясь сделать все самому. Даже GPT мучал, посмотрев этот видос, наконец догнал. Спасибо за подробное и понятное пояснение.
@GroundGamer
@GroundGamer Жыл бұрын
Если объяснить весь ролик коротко, то вот: 1. Хочешь предыдущее значение ? Используй callback функцию с аргументом в виде предыдущего значения 2. Не хочешь ошибок в "пустом" useState ? Ставь default случай 3. Данные обновляются ? Используй useState 4. Манипуляция над списками: 4.1.Хочешь обновить список ? Делай так: setState(...state, newState) 4.2. Хочешь удалить из списка элемент ? Делай так: 4.2.1. const cloneTasks = [...tasks] 4.2.2. cloneTasks.splice(${нужный индекс задачи}, 1) 4.2.3. setState(...state, cloneTasks) 4.3. Хочешь изменить элемент списка ? Делай так: 4.3.1. const formedTasks = tasks.map(task, i => { if (i === 1) { return { text: 'newText' } }} return task) 4.3.2. setState(...state, formedTasks) Получается топ 4?))
@kawaikaino5277
@kawaikaino5277 Жыл бұрын
а почему именно splice, а не скажем .filter ? )
@GroundGamer
@GroundGamer Жыл бұрын
@@kawaikaino5277 я лично выбрал splice, чтобы проще делать отладку, в случае чего-то. Кнч, можно сделать что-то такое: 1. const formedTasks = state.filter(...) 2. return formedTasks Но также, в splice ты можешь начать с индекса таски, которую тебе нужно удалить, а не идти по целому списку. Как бы да, ты используешь проход по массиву, так как и filter, но в конкретном случае, как я понимаю, splice начинает с определённого индекса массива и затем уже делает те действия, которые нам нужны. По поводу "проход по массиву", я начал разъяснять так, как примерно работает под капотом Если в чём-то не прав, поправьте меня пожалуйста))
@kawaikaino5277
@kawaikaino5277 Жыл бұрын
​@@GroundGamer По поводу, прохода по всему массиву, при использовании filter. а. В большинстве случаев, это экономия на муравьях, т.к чаще всего не приходится работать с длинными массивами б. Ну уж, если пришлось обработать длинный, на сколько мне известно движок под капотом оптимизирует выполнение filter (но это не точно) Спасибо за ответ
@lirrr6555
@lirrr6555 Жыл бұрын
@@GroundGamer зачем здесь переменная formedTasks? filter иммутабелен, можно сразу делать return state.filter(...)
@GroundGamer
@GroundGamer Жыл бұрын
@@lirrr6555 Можно, конечно. В целом, хоть однострочные решения и "красивы", но иногда, они сложны для отладки, допустим когда у нас в фильтре (или ещё в каком либо методе массива), содержится ещё один массив по которому нам нужно пройтись, и вся их "красота" перестаёт быть "красотой" и превращается в "чудовище", которое ещё бывает сложно прочитать разрабу. Поэтому, я выбрал для себя такое написание переменных, как за основу
@ВладОся-з7ь
@ВладОся-з7ь 4 ай бұрын
обезательно нужно , получаю удовольсвия понимая то что раньше не знал
@serjmarkelov9915
@serjmarkelov9915 Жыл бұрын
Я перерыл много обучающих видео на youtube включая англоязычные, но твоя подача контента и умение объяснять превосходят всё и вся. Спасибо большое)
@ТёмаКоролёв-к6ф
@ТёмаКоролёв-к6ф Жыл бұрын
мне кажется ты просто плохо ищешь)) Многие штуки он берет как раз из зарубежного ютуба.
@connectw
@connectw Жыл бұрын
@@ТёмаКоролёв-к6ф Привет. Можешь порекомендовать зарубежных ютуберов по реакту?
@TonyPony7
@TonyPony7 Жыл бұрын
нигде не обходится без льстецов!
@ArtDen100
@ArtDen100 Жыл бұрын
Ты невероятно круто объясняешь!!! Запиши видео по всем основным хукам, это будет супер
@abikideas
@abikideas Жыл бұрын
Ухты, спасибо большое. Столько времени сидел и не понимал, почему меняю state объекта, а ничего не рендерится. Как больно быть новичком в чем-то )
@ИгорьНово
@ИгорьНово Жыл бұрын
Супер спасибо!!! Если так разберать все топовые хуки, то будет агонь, агнинский!!!
@rustamakhmetyanov4404
@rustamakhmetyanov4404 Жыл бұрын
Спасибо за работу, любое обучающее видео от вас интересно, тем более такого формата. Интересен ещё useEffect с его побочками и проблемами.
@Zubairavvv
@Zubairavvv Жыл бұрын
Пишу лайк, ставлю комментарий и показываю что мне интересно )
@Sergey-vh3vj
@Sergey-vh3vj Жыл бұрын
Спасибо, очень полезно разработчикам любого уровня. С массивами сам в свое время долго мучался и не мог понять.
@vladfolk2418
@vladfolk2418 7 ай бұрын
Спасибо большое, благодаря данному видео я теперь не допускаю подобных ошибок!🙏
@daniil__kryuchkov
@daniil__kryuchkov Жыл бұрын
это ровно то что я искал! жаль что только один хук был описан, жду еще подобных видео, лайк, подписка
@unknown.6914
@unknown.6914 11 ай бұрын
Как для начинающего разработчика, очень полезное видео, Спасибо !
@stellarlay517
@stellarlay517 9 ай бұрын
Начиная с 10-й минуты, по поводу undefined в users: как-то немного замудренно объяснял) Просто должно быть понимание, что useEffect отрабатывает только ПОСЛЕ рендера компонента. Поэтому и undefined, потому что при рендере useEffect ещё не отработал, а начнет свое выполнение только после отрисовки разметки и уже тогда из-за setUsers произойдет ре-рендер и мы увидим наших пользователей. То есть людям нужно донести именно базовое понимание того, почему мы undefined сначала получаем, иначе никто так и не поймет ничего А так за видос респект, прошел по основным "грубым" ошибкам!:)
@2Extremum
@2Extremum 8 ай бұрын
Для понимания надо сначала на этом же канале посмотреть очень понятное видео о useEffect
@hello-gq4yi
@hello-gq4yi Жыл бұрын
Лайк поставлен , комментарий соответственно 🌚🫡
@nafisgarifullin7199
@nafisgarifullin7199 Жыл бұрын
Очень все понятно и доступно, спасибо тебе за такой классный материал 👍 Таких очень мало, кто может объяснить так доходчиво и просто
@alexanderkomanov4151
@alexanderkomanov4151 Жыл бұрын
Классно! Хотелось бы про useEffect как продолжение ну и про остальные тоже. 😀
@Мария-ц8ъ2е
@Мария-ц8ъ2е Жыл бұрын
Плакать от счастья хочется. Очень актуально🥲Спасибо огромное❤❤❤❤❤
@Soap9613
@Soap9613 Жыл бұрын
Очень интересно даже того, кто не знает реакт, но знает js! Давай ещё!))
@T800Cyberdine
@T800Cyberdine Жыл бұрын
Очень полезный видос! Жалко что не посмотрел его пару недель назад, сэкономил бы кучу своего времени. (к решению пришел сам, перепробовав кучу вариантов и вникнув в суть самой проблемы мутации массивов. Но времени затратил на это немеряно.)
@ArchakovBlog
@ArchakovBlog Жыл бұрын
молодец, что сам нашёл 👍 в идеале, нужно стараться сначала самому находить решения любым возможным способом и только потом искать его в подобных роликах и других готовых решениях
@AmericanDragon134
@AmericanDragon134 Жыл бұрын
@@ArchakovBlog а какая у тебя клавиатура?
@kspshnik
@kspshnik Жыл бұрын
Доброе утро! Про useLayoutEffect() было бы суперкруто :)
@LavandaKicK
@LavandaKicK Жыл бұрын
Благодарю за видео и вообще контент, очень полезный! Лично мне было бы интересно посмотреть как писать CSR приложение на React, с db на postgres, sequelize-cli, сервер на express, webpack, регистрация-авторизация на JWT(c access token и refresh token), bcrypt, модалки, мультеры(загрузка-выгрузка файлов) и конечно как писать endpoints api и render на бек, всё связывать и защищать. Мне думается что задача сложна для начинающего фулстека, поднять сервак, и на хуках параллельно связывать фронт и бэк. Книжный клуб например. А вообще хотел узнать что за тема в VSCODE??? =))))
@VolodymyrSirenko
@VolodymyrSirenko Жыл бұрын
Очень полезное видео, спасибо! Я, как начинающий , не все смог переварить,. но от половины видео есть реальная польза! :)
@Елена-б6в3ж
@Елена-б6в3ж 11 ай бұрын
Спасибо. Стала понятна 2 глава документации React
@murrmax1466
@murrmax1466 Жыл бұрын
спасибо большое! Вот тебе комментарий, хотелось бы больше таких видео по реакту!
@БауржанКадискалиев
@БауржанКадискалиев Жыл бұрын
Спасибо большое за такие видео. Просто не представляешь как твой мини-урок помог мне с задачей. Могу скрин потом выслать))) захотелось даже статью а блоге написать)
@dmitriykarabasov1440
@dmitriykarabasov1440 Жыл бұрын
Отличный контент! Продолжайте, мы ждём!
@jimsaharov
@jimsaharov Жыл бұрын
Спасибо за урок! Очень грамотно объясняете материал и к тому же в таких тонкостях. Для меня как новичка - это просто бесценная информация! Успехов Вам!
@roshin-1
@roshin-1 Жыл бұрын
Спасибо большое! Теперь я понял как это работает)
@kentavr16
@kentavr16 Жыл бұрын
Хорошее обобщающее видео. Думаю будет интересно увидеть нечто подобное о пропсах.
@РусланБогданов-ы8е
@РусланБогданов-ы8е Жыл бұрын
Топ тема, делай больше таких видео, я как раз изучаю реакт, и был вопрос как лучше все это использовать нельзя же все хуки использовать на абум
@ИгорьБабиков-б6щ
@ИгорьБабиков-б6щ Жыл бұрын
Привет) спасибо за видео! а когда будет про (не используй везде useCallback и memo) ?
@maronwilsons
@maronwilsons Жыл бұрын
Денис ждем новый интенсив по Next.js + TypeScript, оч хотим((
@АлександрСосо-щ1б
@АлександрСосо-щ1б Жыл бұрын
уже заждались новые видео!
@ihor7307
@ihor7307 Жыл бұрын
Круто. Давай про другие хуки. С более конкретными примерами использование
@НиколайОхотников-ф9х
@НиколайОхотников-ф9х Жыл бұрын
Интересно! Давай еще! Спасибо!)
@dmitrylem7703
@dmitrylem7703 Жыл бұрын
Хочу больше роликов про best practices
@unknownWakeborder
@unknownWakeborder Жыл бұрын
Будет полезной инфа про основные хуки и их работу под капотом, а так же их стоимость выполнения, это поможет лучше понимать когда стоит их применять.
@andreyh6934
@andreyh6934 Жыл бұрын
Спасибо! очень классно объясняешь! Продолжай в том же духе и будет зашибись. ))
@____Olga__
@____Olga__ Жыл бұрын
Расскажи по возможности, пожалуйста про все костыли useCallback() & useEffect()
@yauheniramankou5491
@yauheniramankou5491 Жыл бұрын
Спасибо, полезная информация, как и сама рубрика разбора типичных и не только ошибок)
@galichandreyschool
@galichandreyschool Жыл бұрын
Замечательный видеоролик! Благодарю за Ваш труд! Успехов! 😊👍
@javascriptov
@javascriptov Жыл бұрын
Гоу видос про useCallback | useMemo
@Oleg_Artemov
@Oleg_Artemov Жыл бұрын
очень интересно! расскажи пожалуйста про использование хука useLayoutEffect
@yoerh
@yoerh Жыл бұрын
Ждём видео об остальных хуках
@black_light
@black_light 4 ай бұрын
Спасибо. Помог решить проблему.
@РусланСабитов-и2ь
@РусланСабитов-и2ь Жыл бұрын
Теперь понятно что такое мутация объекта.
@ivankprod
@ivankprod Жыл бұрын
Неплохие советы) Лайк!
@vansowboy
@vansowboy Жыл бұрын
Отличный ролик, полезная инфа!) Ждем еще
@Imperfectwow
@Imperfectwow Жыл бұрын
Классный ролик, много для себя подчеркнул.
@SeverHolod
@SeverHolod Жыл бұрын
Будут ли еще видео по React Native? Жду с нетерпением
@ДенисАгейчев
@ДенисАгейчев Жыл бұрын
Все что ты делаешь, все интересно. Продолжай в том же духе!
@Айбек-г3е
@Айбек-г3е Жыл бұрын
Гоу видосы про useForm и про валидацию
@YuliyaAnts
@YuliyaAnts Жыл бұрын
Очень интересно! Буду ждать видео и для других хуков :)
@mikalai_root
@mikalai_root Жыл бұрын
Спасибо за некоторые интересные моменты. Маленький вопросик: а почему setInterval не убили в ретерне юзэффекта?
@ИванФамилия-ю5и
@ИванФамилия-ю5и Жыл бұрын
Продолжай!Спасибо тебе за объяснения!
@haibova_irisha
@haibova_irisha Жыл бұрын
Спасибо большое !!! очень крутая подача ) а на boosty ты ессть новый контент ?
@ArchakovBlog
@ArchakovBlog Жыл бұрын
Сначала новый контент выходит там. Это видео появилось в Ютубе через неделю только, поле бусти
@haibova_irisha
@haibova_irisha Жыл бұрын
@@ArchakovBlog спасибо
@Алексей-о3т1щ
@Алексей-о3т1щ 11 ай бұрын
действительно полезное видео. спасибо
@Вадим777-б9я
@Вадим777-б9я Жыл бұрын
Огромная благодарность за такое видео про особенности useState! Будем ждать про другие хуки в том же формате!
@alekseyberezov8020
@alekseyberezov8020 Жыл бұрын
Бро, продолжай пожалуйста!!!
@erzhan225
@erzhan225 Жыл бұрын
Да, давай ещё эту рубрику
@haibova_irisha
@haibova_irisha Жыл бұрын
Привет , ,с Новым годом ! а можно более подробно о мутациях ? Как правильно использовать с redux toolkit , спасибо
@Boobnovslava
@Boobnovslava Жыл бұрын
Очень ждем новые видео
@slever17
@slever17 Жыл бұрын
Будут ли новые полные курсы (на несколько видосов)? Если да, то будут ли для premiddle/middle и как скоро?
@slavikvasin9095
@slavikvasin9095 Жыл бұрын
юзколбек и юзмемо ошибки ждем) и хотелось бы больше по тулкиту инфы и парочку мнений на счет актуальности стека через обычный редакс и классы, не приведет ли это к потери актуальности на рынке через пару лет такой работы, при активном развитии тулкита и функциональных комп. есть ли смысл ломать голову в коде на классах в 23-24 годах? так же хотелось бы услышать мнение о TS, очень многие его нахваливают, но я слышал мнение от очень крутых разрабов, что тс нужен только если ты изначально пишешь хреновый код ибо слабые разрабы хейтят не строгую типизацию, а потом скилапнувшись наоборот восхваляют возможности динамической типизации... как то так
@Отдайкирку-б7й
@Отдайкирку-б7й Жыл бұрын
Максимально понятно и доходчиво
@andreikrashas7155
@andreikrashas7155 Жыл бұрын
Как всегда красавчик, всё по полочкам!
@tanercoder1915
@tanercoder1915 Жыл бұрын
Важно также возвращать cleanup callback из useEffect когда есть любые подписки и счётчики.
@-rk
@-rk Жыл бұрын
Арчаков, большое спасибо!
@MaximSeleznev
@MaximSeleznev 10 ай бұрын
Очень круто! Спасибо!
@АндрейПоляков-е5н
@АндрейПоляков-е5н Жыл бұрын
Очень очень классный ролик. Да и вообще канал крутой. Спасибо за Реакт-пиццу
@saperovtop
@saperovtop Жыл бұрын
Огонь! 🔥
@АндрейРосовский
@АндрейРосовский Жыл бұрын
Ролик и интересный и полезный! Сделай пожалуйста по остальным хукам!
@arman-6172
@arman-6172 Жыл бұрын
18:20 Привет. Что думаешь, если всегда использовать в таком виде: setTask((tasks) => [...task, text]) какие плюсы: 1. Ты всегда работаешь с данными, которые хранит хук 2. Если нужно будет юзать Memo или в useState хранится объект, который нужно менять от других эффектов, то не нужно будет условный tasks прописывать в зависимости эффектов 🤔
@samiroutka
@samiroutka Жыл бұрын
Благодарю, неплохо помог
@joper3703
@joper3703 Жыл бұрын
Да, давай пожалуйста про useMemo и useCallback
@lukts7839
@lukts7839 Жыл бұрын
Спасибо за видео. Чнм больше хуков, тем лучше.
@stanislavsapogov9268
@stanislavsapogov9268 Жыл бұрын
Спасибо за видео! Скажи, плиз, почему в случае с работой с массивами опять не воспользоваться функцией и не написать setState(prev => [...prev, newTask])?
@proletarian
@proletarian Жыл бұрын
так я опытный оказывается, не знал
@nexakasaki
@nexakasaki Жыл бұрын
Норм, новичкам самое то
@НикитаРудаков-з2е
@НикитаРудаков-з2е Жыл бұрын
Отличное видео
@Grigoren_com
@Grigoren_com Жыл бұрын
спасибо! хорошо всё.
@serheyjankowsky6899
@serheyjankowsky6899 Жыл бұрын
setState(prev=>), вызывает общий стейт у компонента который ты будешь использовать на одной странице , пример : толерантный с 3 значениями которые ты можешь переключать , создаешь несколько элементов на странице , начинаешь переключать , и воля у тебя во всех компонентах меняется значения , хотя ты в других его не менял , так что нужно быть аккуратным
@kaze9308
@kaze9308 Жыл бұрын
так это корректная работа useState ведь. он хранит одно состояние, несмотря на то, что разные компоненты снизу используют его
@raff_m_d6971
@raff_m_d6971 Жыл бұрын
Формат отличный
@azizoid
@azizoid Жыл бұрын
А почему в примере с тасками вы не работаете с предыдущими значениями как в первом примере?
@ЕвгенийШут-о7н
@ЕвгенийШут-о7н Жыл бұрын
Топи топи интересно же и залипательно
@ryskin82
@ryskin82 Жыл бұрын
Хочешь удалить из списка элемент делай просто filter c нужными условиями
@vladimirv787
@vladimirv787 Жыл бұрын
Спасибо!
@АнзорБаматалиев
@АнзорБаматалиев Жыл бұрын
В первом случае что нам мешает добавить count в массив зависимости в useEffect?
@borisenkoff_
@borisenkoff_ Жыл бұрын
тут видеоролик затащил только Гена Горин в конце )
@Daemond15
@Daemond15 Жыл бұрын
Спасибо за крутотень
@deceser8057
@deceser8057 Жыл бұрын
Збс, продолжай!
@haibova_irisha
@haibova_irisha Жыл бұрын
привет еще раз ! знаю сейчас не луяшое время , но нету ли в планах сделать какой-то малеьний проект используя react , redux , rtk query , ts ? спасибо
@NovikovEugene84
@NovikovEugene84 8 ай бұрын
Ну это прям база
@jamjam3337
@jamjam3337 Жыл бұрын
👏👍
@Santos20004
@Santos20004 7 ай бұрын
а в самом первом примере если useEffect то почему не просто посадить count массив для отслеживания? и как так завести интервал и не убить его в return прорисовку count вообще вынести за пределы useEffect?
@ДенисСофієнко
@ДенисСофієнко Жыл бұрын
👍
@dpoleev
@dpoleev Жыл бұрын
Подскажи, есть ли у тебя что ни будь. где рассказываешь как запустить перерисовку наружних компонентов из внутренних?
@mikalai_root
@mikalai_root Жыл бұрын
Перерендер родителя из потомка? 1. Callback функцией, переданной как пропс. 2. Изменение переменной глобального стэйта приложения ( пример с условным редаксом: в чайлде используешь диспатч и изменяешь переменную, которая используется в родителе.). Наверняка есть ещё какие-нибудь извращённые способы, типо поиска элементов родителя в dom дереве и прямые манипуляции нативным джаваскриптом( всякие append и т.д.)
@Albert-pm6uf
@Albert-pm6uf Жыл бұрын
Можете подсказать как сделать такое же плавное перемещение курсора?
@РусланСабитов-и2ь
@РусланСабитов-и2ь Жыл бұрын
Супер контент !!
#3: React Hooks - useRef
27:52
Archakov Blog
Рет қаралды 66 М.
За кого болели?😂
00:18
МЯТНАЯ ФАНТА
Рет қаралды 2,9 МЛН
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 47 МЛН
#1: React Hooks - useState
27:47
Archakov Blog
Рет қаралды 66 М.
Frontend Собеседование с разбором. Путь к трудоустройству 2024
41:18
SENIOR on JUNIOR Javascript Developer interview
26:35
BELOV
Рет қаралды 350 М.
#4: React Hooks - useMemo + React.memo
25:38
Archakov Blog
Рет қаралды 72 М.
Полиморфизм на практике
10:42
ExtremeCode
Рет қаралды 180 М.