Учимся использовать useMemo, useCallback и React.memo | подводные камни | JavaScript, React

Sdílet
Vložit
  • čas přidán 25. 07. 2024
  • В уроке пройдёмся по хукам мемоизации в Реакт, посмотрим как их правильно использовать, в каких случаях лучше использовать.
    🍀 Поддержать канал: www.donationalerts.com/r/webe...
    ☕️ Купить кофе: buy.stripe.com/5kA7sL9574SG7x...
    🎨 Купить набор кистей Procreate: webelart.com/illustration.
    ✍️ Мой telegram channel: t.me/webelart
    🏰 Английский CZcams: @webelart_en
    💁🏼‍♀️ Инстаграм: / webelart
    🦄 LinkedIn: / webelart
    Ссылки используемые в уроке:
    😌 Проект на Github github.com/liveldi/youtube_re...
    😌 Рекурсия и стек в JavaScript на примерах: factorial, fibonacci, flatten: • Рекурсия и стек в Java...
    Статьи используемые для подготовки:
    ❤️‍🔥 Understanding useMemo and useCallback - www.joshwcomeau.com/react/use...
    ❤️‍🔥 Why React Re-Renders - www.joshwcomeau.com/react/why...
    ❤️‍🔥 Before you Memo - overreacted.io/before-you-memo/
    ❤️‍🔥 React without memo - • React without memo
    ❤️‍🔥 When to use React.useCallback() - aheadcreative.co.uk/articles/...
    ❤️‍🔥 Understanding when to use useMemo - maxrozen.com/understanding-wh...
    Коллеги, которые помогли ссылками:
    😎 / ivanslo
    😎 / artemtsviliy
    00:00 Введение.
    02:20 Вступление в проект на next.js
    03:25 Теория useMemo, useCallback, React.memo
    11:30 MyHeavyComponent
    14:10 useMemo для тяжёлых вычислений
    17:45 Оптимизация без мемоизации
    21:40 React.memo - pure component
    24:19 Передача объекта в props.
    28:50 Передача функций в props.
    31:10 Где лучше использовать мемоизацию + примеры из жизни.
    На канале я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн.

Komentáře • 151

  • @user-qc8ic8tb3x
    @user-qc8ic8tb3x Před rokem +16

    Крутая тема, крутое видео!
    Хуки и реакт вообще больная тема для меня, слишком много ошибок в них делают разработчики, причем любого уровня.
    Есть еще проблема про меморизацию компонента с children, про это многие забывают. Если передать обычный jsx в children компонента обернутого в memo, то на каждый рендер будет вызываться createElement для этого children, а createElement каждый раз создает новый объект, из-за чего меморизация ломается и добавляет лишний вред для производительности вычислениями меморизации. Еще в контекст многие любят передавать объект, ломая перф всего приложения одной строчкой.
    Очень круто, что вы поднимаете такие темы.

    • @webelart
      @webelart  Před rokem +5

      Спасибо за комментарий и за дополнение про children. Закрепляю!

    • @sergeys4732
      @sergeys4732 Před rokem +2

      Так объект можно в useMemo завернуть) не ломая перф никакой

    • @user-qc8ic8tb3x
      @user-qc8ic8tb3x Před rokem +1

      @@sergeys4732 ага, так и надо. Просто для контекстов про это часто забывают, хотя там эта ошибка будет дорогой

    • @cybersystem5137
      @cybersystem5137 Před měsícem

      @@user-qc8ic8tb3x ога, ну или вынести объект за пределы компоненты и угомониться. Потому что тут он константный.

  • @dr_morpho
    @dr_morpho Před rokem +22

    Как у вас лампово и на лайте, никакой душноты, успехов вам)

    • @webelart
      @webelart  Před rokem +2

      😘 Спасибо!

    • @theoty-js
      @theoty-js Před rokem +2

      да, и разбор деталей и погружение в технические моменты, нравится мне изучать React вместе с Еленой и ее эмоциями))) Уникальность и оригинальность чувствуется!

  • @sako1313
    @sako1313 Před rokem

    Спасибо за такое видео, я сколько видео посмотрел по useMemo и по useCallback не понял, а тут прям все понятно, и весь ролик я так кайфовал, как будто АСМР смотрю)))

  • @k0repan0ff
    @k0repan0ff Před rokem +5

    Спасибо! Очень доходчиво и понятно все объяснено. Приятно смотреть.

    • @webelart
      @webelart  Před rokem

      Я очень рада! 😍☺

  • @albinasenkova8972
    @albinasenkova8972 Před rokem

    Елена, спасибо огромное! Лучшие видео-лекции про веб ❤

    • @webelart
      @webelart  Před rokem

      ❤❤❤ Я рада, что материал полезен!

  • @DevAccount-rq4ni
    @DevAccount-rq4ni Před rokem

    Супер классное понятное объяснение!! Елена спасибо огромное, крутая подача, продолжайте в том же духе 🔥

  • @muslimm3027
    @muslimm3027 Před 8 měsíci

    Спасибо Елена, заслуженный лайк и подписка)) просмотрел кучу видео на эту тему, но так доходчиво еще никто не объснял

  • @MaxShilov
    @MaxShilov Před rokem

    Очень доходчиво объяснила 🔥
    Елена, огромная тебе благодарность 🤟🏻

  • @soldatov_ss
    @soldatov_ss Před rokem

    Это было исчерпывающее видео, очень круто что разжевали все подробно и все подводные камни изучили. Прям основательный подход
    Посреди видео поставил лайк и подписался. Зачет

  • @RedShucov
    @RedShucov Před rokem

    Спасибо большое за видео, очень нравится ваша подача и позитивное настроение
    Желаю побольше просмотров и развития каналу, вы классная :)

  • @SergeyDon
    @SergeyDon Před rokem

    Просто огонь! Просто топ! Как все легко и структурно. Задолбался выковыривать инфу про эти хуки. Везде вроде и по делу и в то же время непонятно, что, когда и где пользовать. Спасибо!

  • @thedeadman1607
    @thedeadman1607 Před 8 měsíci

    Спасибо за видео! Первое видео, в котором наглядно и понятно объяснили в чём разница между useMemo, useCallback и React.memo. Особенно между useMemo, useCallback.

  • @sergsvl
    @sergsvl Před rokem

    Подача, как всегда - волшебно! :)))

  • @theoty-js
    @theoty-js Před rokem +16

    Клёво, что умеешь эмоции включать, так милее уроки получаются) буду изучать хуки, а то пока что знаю о таких как UseEffect и UseState, этого явно маловато ;) благодарю милая)

    • @webelart
      @webelart  Před rokem +2

      ☺️ круто! Спасибо!

  • @custercuster4918
    @custercuster4918 Před rokem

    Большое спасибо за качественный контент, как раз подхожу к хукам, в изучении реакта, видео пришлось как нельзя кстати :)

  • @Mikhail.tortik001
    @Mikhail.tortik001 Před rokem +5

    Оооооооо, тема с useMemo и React.memo это топ. А то в инэте в основном инфа по useState и useEffect) Спасибо большое, жду видос про tsconfig.json😄😄

    • @webelart
      @webelart  Před rokem +1

      Будет следующим видео! ❤

  • @user-vv4nv8hp7u
    @user-vv4nv8hp7u Před rokem

    Спасибо Елена, все круто и понятно, мне понравилось, подписка! Успехов и удачи!!)

  • @awesomedud
    @awesomedud Před 9 měsíci

    Обалденный контент. Спасибо! Жаль раньше вас не нашел

  • @sergsvl
    @sergsvl Před 11 měsíci

    Лена, спасибо за разбор работы мемоизации! Я благодаря ему смог разобрался в реальном проекте с проблемой переключения двух компонентов в табах. У тебя такой ситуации не показано и поэтому я долго исследовал исходник либы Antd и код кастомных табов, у нас на проекте, и не мог понять, почему useMemo не работало. Я и пропсы в компоненты отключил и в useMemo обернул, но они перерисовываются при каждом переключении табов и все тут. Но они же, и спропсами, в ANT'e прекрасно мемоизировались. Т.е. отрабатывали по первому разу, а потом брались из кэша. А проблема была в том, что эти компоненты заменяли друг друга в ДОМ при каждом переключении кастомных табов, т.к. брались из пропса (но это не важно в целом). И решение здесь только одно - монтировать в ДОМ сразу оба компонента (при этом они инициализируются тоже оба), а потом переключать их табами через смену стилей: display: none/block. И тогда они рендерятся заново только при реальной смене их собственных пропсов. Твой же компонент FactorialCalculation один раз монтируется в шаблоне и по нажатию на кнопку не удаляется, и поэтому useMemo для него работает. Но результат для меня очень радостный по итогу :))

  • @catsoftheworld
    @catsoftheworld Před rokem

    Умничка! Спасибо за видео❤

  • @viktorgusev3701
    @viktorgusev3701 Před rokem

    Круто, смотрю третье видео перед подготовкой к собесам.
    Спасибо )

  • @RamaRama-qv3jo
    @RamaRama-qv3jo Před rokem

    Спасибо, очень доступно для понимания !

  • @midlton555
    @midlton555 Před rokem

    Огромное спасибо! Я сидел с этими темами 4 часа.

  • @slavaUkraineStayWithUkraine

    Спасибо за объяснение нюансов, ни у кого такого не слышал. Сам не сильно люблю использовать useMemo, так как сложно понять где он нужен а где нет. Но после видео теперь понял, где его можно юзать и как.

  • @ledof4
    @ledof4 Před rokem

    Спасибо за разъяснение, помогло!

  • @bczya1
    @bczya1 Před 4 měsíci

    Спасибо рекомендациям за ваш канал)

  • @top-mma-news
    @top-mma-news Před rokem

    Интересно было послушать, благодарчик

  • @user-bz9qe2fw4e
    @user-bz9qe2fw4e Před rokem

    спасибо за урок и хорошее настроение)

    • @webelart
      @webelart  Před rokem

      Пожалуйста! 🥰❤ Рада, что урок понравился!

  • @user-cz6yp4mc7e
    @user-cz6yp4mc7e Před 8 měsíci

    Спасибо большое!!! Супер!

  • @rasul7702
    @rasul7702 Před 10 měsíci

    Спасибо большое, наконец то я понял эти два хука

  • @user-jm7dy8ks7w
    @user-jm7dy8ks7w Před rokem

    Учу реакт, но ещё не дошёл до этих хуков, изучаю useState, useEffect, use Context. Не смотря на это Лена рассказала очень понятно про useMemo, useCallback и reactMemo. Спасибо за ценную информацию)

  • @pherum
    @pherum Před rokem

    Какая же ты крутая, Лена!

  • @NikGameChannel23
    @NikGameChannel23 Před rokem

    Спасибо большое Елена, вчера из-за этой оптимизации провалил свой первый собес, а нужно было всего лишь раньше посмотреть ваш ролик и ответить правильно на собеседовании :(

  • @murcha5899
    @murcha5899 Před rokem +1

    да. недавно как раз именно эта инфа появилась на канале в тг React, буквально несколько дней)

  • @miloman1995s
    @miloman1995s Před rokem +1

    после слов будем использовать хуки useMemo, useCallback и REACT.MEMO...... REACT.MEMO Карл, реакт мемо - это хук , Карл... захотелось выключить) надеюсь оговорка, щас посмотрим дальше

  • @damskylizi7532
    @damskylizi7532 Před rokem +1

    лайк, репост, комментарий для продвижения в топ!

  • @user-wz4cv5le7b
    @user-wz4cv5le7b Před 6 měsíci +3

    Феминизация слова "компонент" прошла успешно

    • @webelart
      @webelart  Před 6 měsíci

      КомпонентА ❤

  • @MisaNia25
    @MisaNia25 Před rokem +1

    Классно развиваетесь

  • @magomedaminov4583
    @magomedaminov4583 Před rokem +1

    👍👍👍

  • @MrCortc
    @MrCortc Před rokem +4

    0:00 Я тоже в свое время плакал когда все это изучал и наконец разобрался... Какими же дегенератами надо быть чтобы все так запутать. Нам рассказывают какой реакт классный и быстрый... Но когда ты сталкиваешься с реальностью на боевых проектах. Когда у тебя нет выхода кроме как поддерживать распиаренные плагины типа formik, в котором на серьезных формах с валидацией начинает тормозить обычный ввод текста в инпут, и ты понимаешь, что ничего сделать не можешь, потому что изначально архитектура этих решений такая...

  • @ruslanstupak7625
    @ruslanstupak7625 Před rokem +1

    Спасибо за видео, как всегда все очень ясно и доступно, но есть один очень большой минус - это очень редкий выход видосов, уж оооочень хотелось бы видеть разные уроки почаще)

    • @webelart
      @webelart  Před rokem

      Спасибо за комментарий! Я стараюсь, стараюсь ребята! 😘❤️

    • @ruslanstupak7625
      @ruslanstupak7625 Před rokem

      А ещё очень бы хотелось увидеть именно в твоей подаче видео по настройке вебпака или tsconfigа. Если будет возможность, сделай пожалуйста, буду ну очень тебе благодарен, та и люди, которые тебя смотрят, наверняка тоже обрадовались бы такому материалу

  • @vladimirglazkov7960
    @vladimirglazkov7960 Před rokem +7

    Елена все краше и краше с каждым видео😊

  • @jamjam3337
    @jamjam3337 Před rokem

    💥💥💥

  • @MukhammadAkilov
    @MukhammadAkilov Před rokem

    Спасибо за видео, все круто и информативно! Единственное, в некоторых местах советуют не класть компоненты в служебную папку pages в Next.js)

    • @webelart
      @webelart  Před rokem

      Вроде туда только стили положила. Вообще да, это же папка для роутинга

    • @ReAgent003
      @ReAgent003 Před rokem

      @@webelart пойдешь к нам в яндекс работать?

    • @webelart
      @webelart  Před rokem +1

      @@ReAgent003Эх, пока в Лондоне. Но Яндексу сердечки! ❤

  • @aximas778
    @aximas778 Před rokem

    useMemo - я использовал когда создавал свой кастомный хук связанный с пагинацией (usePagination) т.к. там велись расчёты и возвращались 4 разные значения

  • @Vasilika
    @Vasilika Před rokem

    Хороший урок! Очень позитивно и полезно, про злободневные штуки при React разработке.

  • @user-is8ov1km3t
    @user-is8ov1km3t Před rokem +5

    function sleep(ms) {
    const timeNow = Date.now();
    while (timeNow + ms >= Date.now());
    }
    Такая штука позволяет более наглядно имитировать тяжелые вычисления.

  • @wizardoflightnings6841
    @wizardoflightnings6841 Před rokem +1

    Елена, а Вы просто Software Engineer или Mistress Software Engineer? 🙂 (Senior)

  • @mike-aaa
    @mike-aaa Před 5 měsíci

    А вот если я у родителя обернул onClick в usecallback
    И передал в дочернюю кнопку (как единсвенный параметр), которая обычная безе memo
    Она все равно перерендерится? Т.е зачем делать usecallback??? если я не делаю memo??

  • @karoche-tv
    @karoche-tv Před rokem

    Здрасте, у меня не работает memo в реактнатив. Короче есть Parent.js
    внутри есть передающее это состояние в дочерний
    function SearcResult (){
    const typeState= useState (null);
    const root = useRoute()
    const {from, destination} = props.params
    //props.params приходит из useRoute.
    return (
    )
    }
    function UberTypes({typeState, }){
    //import types from './assets/types.js
    const [type,setType]= typeState
    const onClick = (){
    setType(type)
    }
    //
    return (
    )
    }
    Ну здесь я обернул React.memo( RuoteMap.js )потому что он неизменяется просто показывает картка и какую то анимацию после загрузки один раз и просп Стейт нечего не меняет. А тот UberTypes меняет тип при нажатии на на каждый UberTypesRow. Что я не правильно делаю? Но

  • @tutnichegonet
    @tutnichegonet Před rokem +2

    можешь по простому объяснить что такое pure component? а то ты много раз его в видео упоминаешь)

    • @webelart
      @webelart  Před rokem +1

      Да, я под Pure компонентой имела ввиду компоненту обёрнутую в React.memo.

  • @karoche-tv
    @karoche-tv Před rokem

    Про useReducer, useContext тоже будут?

  • @user-yj8tf7xb6g
    @user-yj8tf7xb6g Před 8 měsíci

    Жалко, что нельзя поставить млн лайков ❤

    • @webelart
      @webelart  Před 8 měsíci

      Спасибо большое!!! ❤❤❤ Рада, что контент нравится! 🥰

  • @volselongames4505
    @volselongames4505 Před rokem

    Привет, а не подскажешь как правильно именовать css модули при импорте их в jsx:
    import вЭтомМестеКакПравильноИменовать from './КакойТоМодуль.module.css';

    • @webelart
      @webelart  Před rokem

      Да, это для nextjs

    • @volselongames4505
      @volselongames4505 Před rokem

      @@webelart нет это для react, фронтенд часть

    • @Kleo_Wyatt
      @Kleo_Wyatt Před rokem

      Наверное мой ответ уже будет не актуален, но если я правильно поняла, то можешь называть как тебе удобно или как на проекте надо, но часто вижу, что называют просто styles.

    • @volselongames4505
      @volselongames4505 Před rokem

      @@Kleo_WyattПривет, да уже не актуален, но всё равно спасибо большое за потраченное время на меня, успехов вам

  • @nth-prog8562
    @nth-prog8562 Před 11 měsíci

    Что может быть лучше, когда красивая женщина учит тебя как пользоваться своим инструментом)

    • @angelicoctahedron3646
      @angelicoctahedron3646 Před 8 měsíci

      Что может быть лучше? Ну вот миллион долларов, например, лучше.

  • @shanthakobyan3451
    @shanthakobyan3451 Před rokem

    UseDefferedValue and UseTransition hooks please 🙏

  • @sharkman6434
    @sharkman6434 Před rokem

    Проходил тестовое и была задачка оптимизировать ререндер в 3 компоненте чтоб при вводе в инпут не происходил ререндер, нужно было обернуть ончейнж в 1 компоненте юзколлбеком и 1 компонент обернуть реакт мемо хоком

    • @webelart
      @webelart  Před rokem +1

      Спасибо что поделились! Но вы в будущем пишите нормально называя, раза три пришлось перечитать, чтобы понять ❤️

    • @sharkman6434
      @sharkman6434 Před rokem

      @@webelart ок спасибо, Елена снимите пожалуйста видео про стадии рендера компонентов в реакт, почему например юзеффект в чилдрене отработет перед таким же в родителе, на собесах на мидла такое спрашивали. И если в див родителя передать коллбек с рефом и консоль логом почему оно срабатывает до рендера чилдрена. Спасибо и развития вам и вашему каналу !

  • @MisaNia25
    @MisaNia25 Před rokem +1

    Что по RoadMap?

    • @webelart
      @webelart  Před rokem +1

      Ещё не сделала 😔 Поможете сгруппировать видео?

    • @MisaNia25
      @MisaNia25 Před rokem +1

      @@webelart да конечно, помогу

  • @user-mh9pe4zp6l
    @user-mh9pe4zp6l Před rokem

    Учусь в уральском вузе и мечтаю уехать в Лондон, чтобы стать таким же весёлым и жизнерадостным, как Елена)

    • @webelart
      @webelart  Před rokem

      Желаю, чтобы всё у вас получилось! ❤

    • @webelart
      @webelart  Před rokem

      Главное учитесь, вкладывайтесь, идите к мечте и желанию, и оно точно исполнится!

  • @angelicoctahedron3646
    @angelicoctahedron3646 Před 8 měsíci

    Если не хотите перерендеривать компонент не имеющих пропсов вообще (или же они не меняются по ходу программы) - вместо memo лучше вытащить в константу:
    function FHome() {}
    export const FhomeComponent = ;
    И соответственно везде использовать {FhomeComponent} вместо .
    useCallback и useMemo можно зачастую тоже избегать, просто вытаскивая объявление функции в родительский компонент. Например, есть Child, который часто перерендеривается:
    function Child(props) {
    const time = useInterval(100); //типо кастомный хук, из-за которого этот комопент будет перендериваться каждые 100мс.
    const heavyResult = useCallback(() => heavyCalc(props.foo), [props.foo]);
    }
    Вместо useCallback можно разбить его на два компонента:
    function Parent(props) {
    const heavyResult = heavyCalc(props.foo);
    return
    }

    • @webelart
      @webelart  Před 8 měsíci

      Почему вы решили, что такой компонент не будет перерендериваться?

    • @angelicoctahedron3646
      @angelicoctahedron3646 Před 8 měsíci

      @@webelart
      Это достаточно легко проверить! В вашем примере вы использовали Home = memo(Fhome). Соответственно, если где-то использовать , он перерендериваться не будет, ведь будет возвращена мемоизированная версия.
      Однако это можно заменить на следующую конструкцию: создать глобальную константу
      export const HomeComp = ;
      Если где-то использовать {HomeComp}? то он точно так же не будет перерендериваться.
      Почему? Потому что конструкция '' была вызвана только один раз, при объявлении глобально переменной.

    • @webelart
      @webelart  Před 8 měsíci

      @@angelicoctahedron3646 Так вы проверяли? Почему спрашиваю, потому что перерендеринг будет.

    • @webelart
      @webelart  Před 8 měsíci

      @@angelicoctahedron3646 Все компоненты, которые вы задействуете внутри, если они не мемоизированы, будут перерендерены и не важно как вы их импортируете, вынесете или не вынесете.

    • @angelicoctahedron3646
      @angelicoctahedron3646 Před 8 měsíci

      @@webelart
      вот простой пример. redraw вызывается только один раз, при маунте компонента. И не вызывается при обновлении родителя.
      import React from 'react';
      function Child() {
      console.log('redraw');
      return Hello
      }
      const globalChild = ;
      export function App(props) {
      const [count,setCount] = React.useState(0);
      return (

      {count}
      setCount(count +1)}>
      {globalChild}

      );
      }
      Как видите, компонент не пришлось оборачивать его в memo. memo будет полезно когда у компонента меняются пропсы - но для propless компонентов (либо компонентов, чьи пропсы не меняются в ходе программы) его использование не имеет смысла.
      А магии здесь нет. Конструкция `` транслируется бабелом в createElement(Child). То есть получается, что эта функция будет вызываться каждый раз когда компонент рендерится. Но мы можем этого избежать: если будем передавать компонент через пропы (обычно через children), глобальные переменные, или используя memo.

  • @user-nb3rz2ub8s
    @user-nb3rz2ub8s Před rokem

    memo же можно также, как и хуки имортить и писать без React

  • @wellemangrey3645
    @wellemangrey3645 Před rokem

    Я может глупость спрошу, но почему бы не использовать эти хуки для запросов на сервер (fetch, или axios) ? Для некоторых данных не обязательно каждую секунду отправлять запрос на сервер, узнавать как там дела, не изменилось ли что-нибудь. Я к тому, что отправил запрос в бекэнд, получил данные, записал в стейт, и уже с этим стейтом работаешь, не перевызывая запросы на сервер (не говоря уже о том, что от сервера нужно ещё дождаться этих данных). Чем -не ресурсоёмкое- занимающее время выполнение? Почему для этих нужд не используется _useMemo_ ?

    • @webelart
      @webelart  Před rokem

      Отличный вопрос! ❤️ Для этих нужд используется useEffect с пустыми скобками.

  • @user-nd5du7zi7p
    @user-nd5du7zi7p Před rokem

    Пришёл посмотреть МЕМЫ, в итоге изучил хуки)

  • @olesyapastushenko685
    @olesyapastushenko685 Před rokem

    Как мне не хватало девочек тьюторов! : *****

  • @timwin47
    @timwin47 Před rokem

    сверх оптимизация...точней что memo требует тоже ресурса а его ресурс так же является память... используем бывает в местах где нет необходимости запоминать.

  • @romasbitinas643
    @romasbitinas643 Před rokem

    Было бы здорово услышать о том как правильно делать http запросы useffect!

  • @404russ
    @404russ Před rokem

    ты как будто дунула немного перед записью,без обид) я твой фанат

    • @webelart
      @webelart  Před rokem +2

      Ахахаха, 😂 Я тут уже писала, не пугайте мою маму. Она меня смотрит.
      P.S. Мамуль наркотой не страдаю!! ЧЕСТНОЕ СЛОВО!! Люблю тебя ❤

    • @webelart
      @webelart  Před rokem +3

      Максимум, что я пью, курю, дую! Это программирование. 💃 Так что дорогие мои подписчики, давайте вместе под ПРОГРАММИРОВАНИЕ! 😎 ААХАХ или ЗА программирование. 🤭❤‍🔥

  • @eleukhin
    @eleukhin Před 6 měsíci

    А не проще так экспортировать: export default React.memo(SomeComponent); без дополнительных именований

    • @webelart
      @webelart  Před 5 měsíci

      Не имеет значения. Зависит от того как у вас линтер в команде настроен.

  • @user-pi9wu1tu6r
    @user-pi9wu1tu6r Před rokem

    Спасибо за информацию
    Но режет слух слово проПСЫ
    Что ещё за псы)
    Хотя судя по наличию видео урока про галерею с волками, видимо человек как раз любит псов)
    А я говорю прОпсы

    • @webelart
      @webelart  Před rokem

      Хаха, не я не очень люблю собак. Я кошатница.

  • @asaturhakhverdyan5446

    накуренная ?😀😀😀😀 класс видео

  • @cybersystem5137
    @cybersystem5137 Před měsícem

    Понятно, что это пример, но если объект константный - его вообще выносят за пределы компонента и все. Никаких мем не нужно - это жирно сильно.

  • @dmitry33ful
    @dmitry33ful Před rokem +1

    Слишком симпотная.

    • @webelart
      @webelart  Před rokem

      😍💃Спасибо!! Очень приятно!!!

    • @dmitry33ful
      @dmitry33ful Před rokem

      @@webelart Просто правда.

  • @hasegawataizou5038
    @hasegawataizou5038 Před rokem

    В начале думал Она бухая.Но поняв что я без работы , и травмы. Понел что я никто

    • @webelart
      @webelart  Před rokem +3

      😂😂 Я вообще не пью! Мой эмоциональный импакт этого не требует вообще...😁 Да и настроение разное. Ещё иногда хочется в видео, чтобы барьеры над сложностью материала снимались. Было интересно, весело и дружелюбно. ❤

    • @webelart
      @webelart  Před rokem +2

      Кстати и да, ещё хотела написать! Вы тут поаккуратнее с такими комментариями, меня мама смотрит! 😎 В прошлый раз мне пришлось убеждать, что я не под наркотой тут в Лондоне, без присмотра😅😅

    • @hasegawataizou5038
      @hasegawataizou5038 Před rokem

      @@webelart Незнаю как ответит на этот вопрос Ты ведь взрослая а Мой коммент Жизнейщая жизабенейшая своя логика и своя правда

    • @webelart
      @webelart  Před rokem

      ​@@hasegawataizou5038 Я просто решила пошутить, всё нормально 😂😂 Пишите разные комменты! Я серьёзно, как чувствуете! Это очень КРУТО!
      А маме я просто передаю привет. Мамуль, если ты это читаешь, люблю тебя безмерно, со мной всё хорошо ❤🙃

    • @hasegawataizou5038
      @hasegawataizou5038 Před rokem

      @@webelart а я уже начел думать что со мной что то не так

  • @alexeyfilippov42
    @alexeyfilippov42 Před rokem

    у сайта loveholidays огромные проблемы с версткой)

    • @webelart
      @webelart  Před rokem

      Конкретику дадите?

    • @alexeyfilippov42
      @alexeyfilippov42 Před rokem

      @@webelart на мобильном есть небольшой scroll-x

    • @webelart
      @webelart  Před rokem

      @@alexeyfilippov42 Скажите какая страница и какое у вас разрешение экрана? Пофиксим!

  • @miloman1995s
    @miloman1995s Před rokem

    4:07 - хуки useMemo и useReact..... боже.... я понимаю что все могут оговориться, но это не значит что надо оставлять такой материал... новички посмотрят и реально будут искать хук useReact... ну проверяйте свой контент перед тем как выкладывать, это не дело

    • @webelart
      @webelart  Před rokem +1

      Вы чего так тригеритесь, ну оговорилась, а у вас словно Солнце на Землю упало. Нормально всё. Расслабьтесь и наслаждайтесь контентом. 😘

    • @Anonym-li8eb
      @Anonym-li8eb Před 4 měsíci

      Душнила

  • @Niachan666
    @Niachan666 Před rokem +1

    Ну слабенько как-то про то, где надо, а где нет. Делать по ощущениям, это не совет. Только ради этого по сути и смотрел, а тут ничего нового.

    • @webelart
      @webelart  Před rokem +1

      Да, ладно вам, не расстраивайтесь! :) Но в тоже время я понимаю вас, мне кажется было бы здорово как-то через профилирование пройти и чтобы конкретные кейсы были и исследование, тогда это было бы огонь. Мне здесь ещё подрасти тоже надо и опыта набраться. Как только нахватаюсь кейсов побольше, уверена сниму ещё видео. ❤

    • @webelart
      @webelart  Před rokem +1

      Кстати если вдруг увидите видео с хорошим объяснением профилирования и сравнения с мемоизацией, тоже кидайте!

  • @cybersystem5137
    @cybersystem5137 Před měsícem

    КомпоненТ. Не ТА, Т! Зачем коверкать?

  • @user-cg1pq2kh6t
    @user-cg1pq2kh6t Před 7 měsíci +1

    если честно, проще доку почитать, ничего не понятно

    • @webelart
      @webelart  Před 7 měsíci

      Прочитайте доку, после возвращайтесь для наглядных примеров❤

    • @user-wz7lq9zv2u
      @user-wz7lq9zv2u Před měsícem

      так чтобы получить самую достоверную инфу- только доку и нужно читать, а не смотреть видосы от джунов)

  • @island1345
    @island1345 Před 9 měsíci +1

    Рекурсия - тяжелая функция🤡🤡 завязывай

    • @webelart
      @webelart  Před 9 měsíci

      Давай ты уж сам себе шнурки как-нить завяжешь 😉

  • @evgeniy3370
    @evgeniy3370 Před rokem +1

    Привет, когда стрим ?

    • @webelart
      @webelart  Před rokem +1

      Уже был на канале Алгосиков с Виктором czcams.com/video/SJeQgSdy6Sk/video.html. Хотите ещё? :)))

    • @evgeniy3370
      @evgeniy3370 Před rokem

      @@webelart Ну это вам тогда опрос надо устроить на стёт проведения нового стрима). Я это всенда за) всякий движ)

    • @webelart
      @webelart  Před rokem

      @@evgeniy3370 Сделаю!

    • @webelart
      @webelart  Před rokem

      В telegram! ❤