React 15: Хук useMemo и useCallback

useMemo и useCallback - хуки для создание объектов и функций (соответственно) с постоянными ссылками на них. Между рендерами иногда нужно уметь сохранять ссылки на объект и функции - ведь очень много моментов в React строится на сравнение ссылок на объекты и функции. В этом уроке рассмотрим как использовать и в каких сценариях могут пригодиться эти хуки.
Наш главный курс "JavaScript старт" - constcode.ru/javascript-start
Бесплатная консультация - constcode.ru/free-lesson
Контакты:
Сайт - constcode.ru
VK - constcode
KZread - / @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...

Пікірлер: 76

  • @chikichik4164
    @chikichik4164 Жыл бұрын

    Спасибо, отличные примеры, не первый ролик смотрю, Ваш довёл до сути.

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Рад стараться

  • @user-gv1vg1wv7b
    @user-gv1vg1wv7b Жыл бұрын

    Приклади відмінні, пояснив грамотно і коротко, дякую

  • @user-or5hs7yw7r
    @user-or5hs7yw7r2 жыл бұрын

    Очень крутые примеры привели для объяснения. Спасибо👍

  • @spbdetonator1
    @spbdetonator13 жыл бұрын

    Доходчиво все разъяснил, самое лучшее видео из тех, что смотрел!

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Старался

  • @user-hj4mj6zx6g
    @user-hj4mj6zx6g2 жыл бұрын

    Очень круто объяснил, просто и понятно, большое спасибо )

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

    Рад стараться )

  • @DShpak27
    @DShpak277 ай бұрын

    Отлично, молодчага

  • @user-er6ce4il7o
    @user-er6ce4il7o2 жыл бұрын

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

  • @Event_Hor
    @Event_Hor Жыл бұрын

    Отличное и четкое объяснение, спасибо. До вас посмотрел 3 подобных урока, понял только на этом примере.

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

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

  • @_sacred_nature
    @_sacred_nature Жыл бұрын

    Отлично объяснили!

  • @user-jo6ug2hj1e
    @user-jo6ug2hj1e Жыл бұрын

    Супер, спасибо👍

  • @321123580
    @3211235802 жыл бұрын

    Спасибо за урок 👍🏻

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

    Дальше интереснее!

  • @user-be7jw6nl1p
    @user-be7jw6nl1p Жыл бұрын

    Спасибо за объяснение -- топчик

  • @anastasiia_idle
    @anastasiia_idle2 жыл бұрын

    Спасибо, Алексей, очень круто и понятно

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

    Круто, что круто и понятно )

  • @trendsgallery
    @trendsgallery Жыл бұрын

    Как обычно клево объяснил!!! Спасибо! Если объясняет Данчин - значит ты точно поймешь)

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Рад стататься

  • @WinchesterD
    @WinchesterD9 ай бұрын

    Спасибо за видео, готовлюсь к интервью по Реакту.

  • @KarinaSea
    @KarinaSea Жыл бұрын

    очень здорово, спасибо большое

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Рад стараться)

  • @KGMelis
    @KGMelis3 жыл бұрын

    полезный урок 👍

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Рады стараться!

  • @dmitrykabanov9458
    @dmitrykabanov9458 Жыл бұрын

    Молодчина, хорошо объясняешь

  • @MrRonnieJamesDio
    @MrRonnieJamesDio3 жыл бұрын

    Хорошо объясняешь, молодец.

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Спасибо

  • @romanriezanov1704
    @romanriezanov1704 Жыл бұрын

    Спасибо!

  • @iakovryzhichka2832
    @iakovryzhichka28327 ай бұрын

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

  • @outcast-cr5yy
    @outcast-cr5yy Жыл бұрын

    очень доступно, спасибо тебе неизвестный программист)

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Я же представился

  • @outcast-cr5yy

    @outcast-cr5yy

    Жыл бұрын

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

  • @arsenidziamidchyk2972
    @arsenidziamidchyk29723 жыл бұрын

    Круто объяснили, большое спасибо!

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Спасибо, стараемся ! ))

  • @SeriousJet
    @SeriousJet3 жыл бұрын

    Спасибо.

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Рад стараться =)

  • @johnnysel8186
    @johnnysel81863 жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Спасибо

  • @CyberDanilka

    @CyberDanilka

    2 жыл бұрын

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

  • @IGODX

    @IGODX

    4 ай бұрын

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

  • @eanewmahariel2279
    @eanewmahariel22793 жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

    Рад стараться! Спасибо за дополнение

  • @user-to7or2ed6j
    @user-to7or2ed6j2 жыл бұрын

    чиназес дуже гуд

  • @user-eo4sh4od9c
    @user-eo4sh4od9c3 жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

    Рад стараться! =D

  • @user-el5ls2cq1y

    @user-el5ls2cq1y

    3 жыл бұрын

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

  • @joper3703
    @joper37033 жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    3 жыл бұрын

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

  • @joper3703

    @joper3703

    3 жыл бұрын

    @@web-constcode6252 Спасибо за ответ

  • @aleksandralando3812

    @aleksandralando3812

    Жыл бұрын

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

  • @romanmed9035
    @romanmed90352 жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

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

  • @VasilyVasilyVasily
    @VasilyVasilyVasily2 ай бұрын

    Почему функцию greeting просто не вынести из функции App?

  • @web-constcode6252

    @web-constcode6252

    2 ай бұрын

    Вынеси )

  • @MDFireX5
    @MDFireX5 Жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

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

  • @warcraft.mp4889

    @warcraft.mp4889

    Ай бұрын

    Мемо сохраняет обьект в кеше, колбек сохраняет функцию в кеше, он это обьяснил Взял и нагнал на человека по своей невнимательности

  • @killd0z3r
    @killd0z3r Жыл бұрын

    Только surname никто не употребляет в англоязычной речи, используй лучше в примерах first name и last name

  • @JdIm6fhjLgdWRhn
    @JdIm6fhjLgdWRhn2 жыл бұрын

    я не понял

  • @web-constcode6252

    @web-constcode6252

    2 жыл бұрын

    Хорошо, что на KZread есть много разных объяснений =) Надеюсь, что разберетесь!

  • @sergeykushnerov8947
    @sergeykushnerov8947 Жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Карта районов Москвы провокация ?

  • @sergeykushnerov8947

    @sergeykushnerov8947

    Жыл бұрын

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

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

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

  • @sergeykushnerov8947

    @sergeykushnerov8947

    Жыл бұрын

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

  • @warcraft.mp4889

    @warcraft.mp4889

    Ай бұрын

    ​@@sergeykushnerov8947ахахах, сумасшествие какое-то Точно нац*стов нет на стране 404?

  • @storozhukua
    @storozhukua Жыл бұрын

    Гарно зачіска

  • @web-constcode6252

    @web-constcode6252

    Жыл бұрын

    Дякую)

  • @up.to.mountains
    @up.to.mountains Жыл бұрын

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

  • @IGODX

    @IGODX

    4 ай бұрын

    Зачем это делать?

Келесі