React 15: Хук useMemo и useCallback

2020 ж. 6 Қаз.
25 465 Рет қаралды

useMemo и useCallback - хуки для создание объектов и функций (соответственно) с постоянными ссылками на них. Между рендерами иногда нужно уметь сохранять ссылки на объект и функции - ведь очень много моментов в React строится на сравнение ссылок на объекты и функции. В этом уроке рассмотрим как использовать и в каких сценариях могут пригодиться эти хуки.
Наш главный курс "JavaScript старт" - constcode.ru/javascript-start
Бесплатная консультация - constcode.ru/free-lesson
Контакты:
Сайт - constcode.ru
VK - vk.com/constcode
KZhead - / @web-constcode6252
Telegram - t.me/constcode
Discord - / discord
Материал урока:
github.com/Aleksey-Danchin/re...
ru.reactjs.org/docs/hooks-ref...
ru.reactjs.org/docs/hooks-ref...

Пікірлер
  • Пока лучшее объяснение + пример нормальный легчайший лайк

    @user-er6ce4il7o@user-er6ce4il7o Жыл бұрын
  • Приклади відмінні, пояснив грамотно і коротко, дякую

    @user-gv1vg1wv7b@user-gv1vg1wv7b11 ай бұрын
  • Доходчиво все разъяснил, самое лучшее видео из тех, что смотрел!

    @spbdetonator1@spbdetonator12 жыл бұрын
    • Старался

      @web-constcode6252@web-constcode62522 жыл бұрын
  • Спасибо, отличные примеры, не первый ролик смотрю, Ваш довёл до сути.

    @chikichik4164@chikichik4164 Жыл бұрын
    • Рад стараться

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • Очень крутые примеры привели для объяснения. Спасибо👍

    @user-or5hs7yw7r@user-or5hs7yw7r2 жыл бұрын
  • Очень круто объяснил, просто и понятно, большое спасибо )

    @user-hj4mj6zx6g@user-hj4mj6zx6g2 жыл бұрын
    • Рад стараться )

      @web-constcode6252@web-constcode62522 жыл бұрын
  • Как обычно клево объяснил!!! Спасибо! Если объясняет Данчин - значит ты точно поймешь)

    @trendsgallery@trendsgallery Жыл бұрын
    • Рад стататься

      @web-constcode6252@web-constcode625210 ай бұрын
  • Спасибо за объяснение -- топчик

    @user-be7jw6nl1p@user-be7jw6nl1p Жыл бұрын
  • Супер, спасибо👍

    @user-jo6ug2hj1e@user-jo6ug2hj1e Жыл бұрын
  • Отлично, молодчага

    @DShpak27@DShpak275 ай бұрын
  • Спасибо, Алексей, очень круто и понятно

    @anastasiia_idle@anastasiia_idle Жыл бұрын
    • Круто, что круто и понятно )

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • Отлично объяснили!

    @_sacred_nature@_sacred_nature Жыл бұрын
  • Спасибо за урок 👍🏻

    @321123580@3211235802 жыл бұрын
    • Дальше интереснее!

      @web-constcode6252@web-constcode62522 жыл бұрын
  • Отличное и четкое объяснение, спасибо. До вас посмотрел 3 подобных урока, понял только на этом примере.

    @Event_Hor@Event_Hor11 ай бұрын
    • может быть потому, что уже 3 раза смотрел другие уроки, потому и понятно стало )

      @web-constcode6252@web-constcode625210 ай бұрын
  • Молодчина, хорошо объясняешь

    @dmitrykabanov9458@dmitrykabanov9458 Жыл бұрын
  • Спасибо за видео, готовлюсь к интервью по Реакту.

    @WinchesterD@WinchesterD7 ай бұрын
  • Хорошо объясняешь, молодец.

    @MrRonnieJamesDio@MrRonnieJamesDio3 жыл бұрын
    • Спасибо

      @web-constcode6252@web-constcode62523 жыл бұрын
  • Спасибо!

    @romanriezanov1704@romanriezanov1704 Жыл бұрын
  • очень здорово, спасибо большое

    @KarinaSea@KarinaSea Жыл бұрын
    • Рад стараться)

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • полезный урок 👍

    @KGMelis@KGMelis3 жыл бұрын
    • Рады стараться!

      @web-constcode6252@web-constcode62523 жыл бұрын
  • очень доступно, спасибо тебе неизвестный программист)

    @outcast-cr5yy@outcast-cr5yy Жыл бұрын
    • Я же представился

      @web-constcode6252@web-constcode6252 Жыл бұрын
    • @@web-constcode6252 ооу. Извини, перемотал и не заметил. Ну так или иначе. Спасибо тебе за все. Ждем новых роликов.

      @outcast-cr5yy@outcast-cr5yy Жыл бұрын
  • Круто объяснили, большое спасибо!

    @arsenidziamidchyk2972@arsenidziamidchyk29723 жыл бұрын
    • Спасибо, стараемся ! ))

      @web-constcode6252@web-constcode62523 жыл бұрын
  • Спасибо за объяснение! Удивился почему ты открываешь консоль VS Code через ctrl + j , а не через ctrl + ~(тильда). Рекомендую)

    @iakovryzhichka2832@iakovryzhichka28325 ай бұрын
  • Спасибо.

    @SeriousJet@SeriousJet2 жыл бұрын
    • Рад стараться =)

      @web-constcode6252@web-constcode62522 жыл бұрын
  • чиназес дуже гуд

    @user-to7or2ed6j@user-to7or2ed6j2 жыл бұрын
  • Думаю, можно было просто в button поставить аттрибут type="button", а то там по умолчанию type="submit") А видео крутое, спасибо)

    @eanewmahariel2279@eanewmahariel22792 жыл бұрын
    • Рад стараться! Спасибо за дополнение

      @web-constcode6252@web-constcode62522 жыл бұрын
  • первый видос, благодаря которому я понял

    @user-eo4sh4od9c@user-eo4sh4od9c3 жыл бұрын
    • Рад стараться! =D

      @web-constcode6252@web-constcode62523 жыл бұрын
    • @@web-constcode6252 Я подтверждаю! Так и есть вы тот кто смог донести до меня как они работают! Благодарю!

      @user-el5ls2cq1y@user-el5ls2cq1y2 жыл бұрын
  • самое адекватное объяснение в рунете, единственное до сих пор не понимаю нафига указывать функции в зависимостях useEffecta , мне кажется это может только испортить всю погоду)

    @johnnysel8186@johnnysel81863 жыл бұрын
    • Спасибо

      @web-constcode6252@web-constcode62523 жыл бұрын
    • насколько я понимаю там будет писаться ошибка что не все зависимости переданы в массив, иногда видел у себя такую ошибку, хотя это скорее просто warning, который можно там поправить)

      @CyberDanilka@CyberDanilka2 жыл бұрын
    • @@web-constcode6252вы так и не ответили, зачем добавлять функцию в зависимости. Для чего это делать?

      @IGODX@IGODX2 ай бұрын
  • Я правильно понимая, что если во втором примере вынести greeting в глобальную область видимости (за компонент), то всё будет работать как и с useCallback ???

    @joper3703@joper37033 жыл бұрын
    • Нужен код видеть что бы ответь на этот вопрос. Но если greeting будет глобальной переменной, то да, она будет всегда одной и той же для всех экземпляров. Так, например, делают с общими настройками и стилями.

      @web-constcode6252@web-constcode62523 жыл бұрын
    • @@web-constcode6252 Спасибо за ответ

      @joper3703@joper37033 жыл бұрын
    • А еще ее можно описать функцию внутри useEffecta, если она используется только там, и тогда лишнюю зависимость можно убрать.

      @aleksandralando3812@aleksandralando3812 Жыл бұрын
  • хорошо рассказываете, но суть разницы не раскрыли, да еще и зачем-то эффект сюда добавили. у мемо и каллбэка имеется разница, описанная на странице которую Вы показывали и существенная. надеюсь зрители все же почитают и дополнят полученную в видео информацию текстом из показанной оф. документации

    @romanmed9035@romanmed9035 Жыл бұрын
    • Всегда в первую очередь нужно читать документацию. Мои ролики это дополнительные примеры.

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • Почему функцию greeting просто не вынести из функции App?

    @VasilyVasilyVasily@VasilyVasilyVasily15 күн бұрын
    • Вынеси )

      @web-constcode6252@web-constcode625215 күн бұрын
  • Только surname никто не употребляет в англоязычной речи, используй лучше в примерах first name и last name

    @killd0z3r@killd0z3r Жыл бұрын
  • нужно было usecallback на одном и том же примере. А если в 1 примере создать callback то что ... ты взял все стер добавил useEffect все предыдущие забылось и пытаясь найти общее с предыдущим примером понимаешь, что это какойто развод. Галимое обьяснение. Я хотел узнать чем отличается useMemo от useCallback и ответа нету. В чем разница от сохранения результата от сохранения функции.

    @MDFireX5@MDFireX5 Жыл бұрын
    • Развод и галимое объяснение. Я столько старался ради этих слов.

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • я не понял

    @JdIm6fhjLgdWRhn@JdIm6fhjLgdWRhn Жыл бұрын
    • Хорошо, что на KZhead есть много разных объяснений =) Надеюсь, что разберетесь!

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • бл....норм обьяснил, но в конце ролика досмотрел что карта висит на стене...при нынешней ситуации с Украиной - это вообще считаю провокация.

    @sergeykushnerov8947@sergeykushnerov8947 Жыл бұрын
    • Карта районов Москвы провокация ?

      @web-constcode6252@web-constcode6252 Жыл бұрын
    • @@web-constcode6252 конечно бл....ты на приколе ?

      @sergeykushnerov8947@sergeykushnerov8947 Жыл бұрын
    • @@sergeykushnerov8947 нет, на фенотрапиле. Так а чем карта Москвы не угодила ? )))

      @web-constcode6252@web-constcode6252 Жыл бұрын
    • @@web-constcode6252 бл....я украинец....ГЛАЗА РЕЖЕТ !!!!!!!!!!!!!

      @sergeykushnerov8947@sergeykushnerov8947 Жыл бұрын
  • Гарно зачіска

    @storozhukua@storozhukua Жыл бұрын
    • Дякую)

      @web-constcode6252@web-constcode6252 Жыл бұрын
  • Второй пример так себе, у новичков возникнет вопрос - зачем в dependency array записывать функцию? Тут лучше пример с onClick функциями подойдет.

    @up.to.mountains@up.to.mountains Жыл бұрын
    • Зачем это делать?

      @IGODX@IGODX2 ай бұрын
KZhead