Блок схема по использованию memo() && Боевые примеры

Поділитися
Вставка
  • Опубліковано 4 сер 2024
  • Мы уже многое узнали о memo(), но единственный вопрос, который мы обошли стороной, и возможно самый важный: "а как понять, когда использовать memo, а когда нет?". В этом видео мы создадим блок схему, которая ответит на этот вопрос и опробуем ее в боевых условиях)
    Поддержать Айти Синяка можно здесь:
    UA-cam: / @it-sin9k
    boosty: boosty.to/sin9k
    Patreon: / itsin9k
    00:00 Анонс темы
    00:51 Изучаем причины рендера
    03:00 Стоимость рендера к стоимости вызова memo()
    07:25 Построение блок схемы
    08:22 Боевой пример #1
    09:05 Боевой пример #2
    10:30 Подписывайтесь!
    Подписаться на канал: / @it-sin9k
    Twitter: / it_sin9k
    -------------------------
    Данный канал создан для инициирования бесед на различные темы IT сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом

КОМЕНТАРІ • 112

  • @davidfromnorth7836
    @davidfromnorth7836 3 роки тому +37

    Среди всех Todo туториалов - это как глоток свежего воздуха

  • @-getmen6001
    @-getmen6001 2 місяці тому

    Жирный лайк Синяку!

  • @vadimimmel7415
    @vadimimmel7415 Рік тому

    Слышал, что алгоритмы ютуба засчитывают комменты только более пяти слов, в таком случае есть смысл добавит ещё слов, например: Жирный лайк синяку за этот пример!

    • @it-sin9k
      @it-sin9k  Рік тому

      Спасибо за поддержку канала! Вроде тоже больше 5 слов) алгоритм UA-cam услышь нас))

  • @ITKAMASUTRA
    @ITKAMASUTRA 3 роки тому +29

    АйТи Синяк, как всегда аплодирую!!! Дополнительно хлопаю продуктовому магазину с 3%) Особенно 3% 😐

    • @it-sin9k
      @it-sin9k  3 роки тому

      Благодарочка) всегда приятно от других блогеров получить такую высокую похвалу)

    • @kinderhero8897
      @kinderhero8897 3 роки тому +1

      опа. Димыч

  • @kspshnik
    @kspshnik Рік тому

    Жирный лайк Синяку за этот видос!!!

    • @it-sin9k
      @it-sin9k  Рік тому

      Лайки мы очень любим)

  • @gyglejid
    @gyglejid Рік тому

    Жирный лайк Синяку! ))

  • @user-ex9ju3sz2x
    @user-ex9ju3sz2x 3 роки тому +14

    Спасибо за подробные разборы и бенчмарки! У самого на них точно времени не хватит:)

    • @it-sin9k
      @it-sin9k  3 роки тому +5

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

  • @n0sfer
    @n0sfer Рік тому

    этот канал круче чем chrome developers!

    • @it-sin9k
      @it-sin9k  Рік тому

      Спасибо!) Надо посмотреть канал chrome developers)

  • @user-wk5ij2je3z
    @user-wk5ij2je3z Рік тому

    ЖЫРНЫЙ ЛАЙК СИНЕКУ

  • @go_better
    @go_better 5 місяців тому

    Спасибо большое. Очень полезный канал!

    • @it-sin9k
      @it-sin9k  5 місяців тому

      спасибо за поддержку комментариями!

  • @Quentinrei
    @Quentinrei Рік тому

    Жирный лайк синяку 🎉🎉🎉🎉

  • @myroslavpasko1087
    @myroslavpasko1087 Рік тому

    Жирный лайк Синяку!!

    • @it-sin9k
      @it-sin9k  Рік тому

      Жирное спасибо!)

  • @evgeniygalitsin5084
    @evgeniygalitsin5084 3 роки тому

    Видео огонь, спасибо тебе за твое работу )

  • @boldureans
    @boldureans 2 роки тому

    Плейлист бомбический!

  • @user-eq7fu9sd5z
    @user-eq7fu9sd5z 3 роки тому +1

    как всегда информативно, спасибо.

  • @Andrei-jz2pp
    @Andrei-jz2pp 3 роки тому +2

    Крутяк, спасибо за канал

  • @vitabramov89
    @vitabramov89 3 роки тому

    Как всегда - чётко, по делу и очень полезно! Спасибо!

  • @bukanaka
    @bukanaka 3 роки тому

    Очень полезные и нужные ролики! Лайк!

  • @oleksandrbilyi3561
    @oleksandrbilyi3561 3 роки тому

    Жирний лайк Синяку !!!

  • @ulibkaify
    @ulibkaify 2 роки тому

    Спасибо Вам за огромную работу и столь понятное объяснение!

  • @operkot777
    @operkot777 3 роки тому +2

    Жирный лайк Синяку! 🤘

  • @379sanek
    @379sanek 3 роки тому +1

    Жирнейший лайк синяку и его команде

  • @victorchilari
    @victorchilari 3 роки тому

    Мега жирный лайк Синяку! Спасибо за познавательный контент 👍

  • @K2_PS
    @K2_PS 2 роки тому

    Жирный лайк синяку🤘

  • @dmitriymovchan6563
    @dmitriymovchan6563 3 роки тому +1

    Классное видео!

  • @user-kj8sw6js6y
    @user-kj8sw6js6y 3 роки тому

    Жирный лайк Синяку!! Отличный видос.

  • @isaabazov3700
    @isaabazov3700 Рік тому

    Жирный лайк синяку)

  • @vvadimvoit7704
    @vvadimvoit7704 Рік тому

    жирный лайк Синяку!)) видео супер!)

  • @sashasyhinin3928
    @sashasyhinin3928 3 роки тому +1

    👍 - это самый жирный лайк что я нашел)

  • @aleksandrguryanov1078
    @aleksandrguryanov1078 Рік тому

    Жирнейший лайк синяку, отличное видео. )

  • @GrytsaLex
    @GrytsaLex 3 роки тому

    жирный лайк СИНЯКУ!

  • @gritsienkooleg3447
    @gritsienkooleg3447 Рік тому

    Жирный лайк Синяку!)) Заставляет задуматься и копать глубже... Спасибо за все видео!

  • @jses8560
    @jses8560 3 роки тому

    Жирный лайк Синяку.

  • @STELLS541
    @STELLS541 Рік тому

    Оч жирный 👍🏻!!!!

  • @user-eb5yw9ui6o
    @user-eb5yw9ui6o 2 роки тому

    большое спасибо!

  • @vitabramov89
    @vitabramov89 3 роки тому

    Жирный лайк синяку!

  • @user-nf9kz9ih6v
    @user-nf9kz9ih6v 3 роки тому +10

    Считаю, что канал крайне недооценен

  • @Infinity-zf8ms
    @Infinity-zf8ms 9 місяців тому

    Спасибо

  • @miloman1995s
    @miloman1995s 2 роки тому

    круто спасибо

  • @hungrycoder339
    @hungrycoder339 Рік тому

    Без воды, все расписано. Не хватает только реального примера в рабочем продукте. Чтобы замерить, насколько грамотно мемоизированные компоненты могут увеличить производительность.

  • @nicosl8511
    @nicosl8511 3 роки тому

    Жирный лайк Синяку! Жирный лайк Синяку!

  • @user-mj4qx6lw2y
    @user-mj4qx6lw2y 3 роки тому +1

    Жирный лай Синяку))) Отличное и очень полезное видео))) Спасибо тебе за то что ты делаешь!!!)))

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      всегда пожалуйста!)
      в качестве благодарности, можете поделиться этим видео со своими коллегами)

    • @user-mj4qx6lw2y
      @user-mj4qx6lw2y 3 роки тому

      @@it-sin9k хотел спросить, планируешь ли выпускать видео о жизни в Нидерландах, и в частности про работу там?

    • @it-sin9k
      @it-sin9k  3 роки тому +2

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

  • @user-ox4yl6gu3u
    @user-ox4yl6gu3u 2 роки тому

    Жирный лайк синяку

  • @KarasikHelen
    @KarasikHelen 2 роки тому

    Жирнющий лайк Синяку! Топчик-жирчик)

  • @user-dg9ki9le8m
    @user-dg9ki9le8m 3 роки тому +3

    В целом так и думаю, но вот последний пример с экспортом мемоизированного и немемоизированного сосотояния компонента как-то в голову вообще не приходил, спасибо! :)

    • @it-sin9k
      @it-sin9k  3 роки тому +3

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

  • @Vllad_Ko
    @Vllad_Ko 3 роки тому

    like!!!!

  • @bukanaka
    @bukanaka 2 роки тому

    2:19 Все значения и так ссылочные в js. Каждый идентификатор содержит набор цифр, которые ссылаются на область в памяти где находятся данные.

    • @vladislavstepanov7591
      @vladislavstepanov7591 2 роки тому

      Реакт на каждый рендер вызывает функцию, а внутри функции объявлены объекты. По сути это будут новые объекты

  • @user-pv5is5pz4j
    @user-pv5is5pz4j 2 роки тому

    👍

  • @user-vg5zk4xs7s
    @user-vg5zk4xs7s 2 роки тому

    Ребята, спасибо большое за такой качественный контент! Расскажите, как работает useContext? Как react понимает, что нужно обновить конкретный подписанный компонент? Он бежит по всему дереву или как-то сохраняет ссылки на подписанные компоненты? В общем КАК?? Благодарю!

    • @it-sin9k
      @it-sin9k  2 роки тому +1

      была мысль добраться до этого хука, но немного попозже возможно

  • @Ilya_Baklanov_MTB
    @Ilya_Baklanov_MTB 3 роки тому +1

    Чтобы Синяк стал еще синее - надо надавить на него, например жирным лайком 👍

  • @kspshnik
    @kspshnik Рік тому

    Кстати, возможно в блок схему имеет смысл добавить ещё один вопрос: предотвращается ли рендер только одного отдельного компонента или целого поддерева компонентов?

    • @it-sin9k
      @it-sin9k  Рік тому

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

  • @user-zp5hz3sy7y
    @user-zp5hz3sy7y 3 роки тому

    "Роковое число 23" xD 6:40

  • @raufhashimov241
    @raufhashimov241 3 роки тому

    А как вы проверяли скорость компонента? Только при первом рендере ? Или обновляли компонент. Можно полный код, пожалуйста?

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      Я делал следующим образом. У меня на экране была кнопка. По нажатию на кнопку запускался perfomance.now(), монтировался компонент и выполнялся рендер 100 000 подряд и снова вызывался perfomance.now(). И это время я сравнивал. К сожалению примеров полных не осталось, т.к. я там много разных экспериментов и перезаписывал старые

    • @raufhashimov241
      @raufhashimov241 3 роки тому

      @@it-sin9k эххх жаль.

  • @AbraKadabra000
    @AbraKadabra000 3 роки тому +5

    Продам коммент!(шутко)

  • @denomster
    @denomster 2 роки тому

    Может глупый вопрос, но не пойму, как смоделировать, чтобы memo предотвращал из 10 попыток рендера только одну (5:35). В случае с изменением стейта родительского компонента ведь всегда будет попытка перерендерить дочерний компонент.

    • @Prog_Ramer
      @Prog_Ramer 2 роки тому

      при загрузке со сторонних АПИ. Загрузки идут часто, но какие-то данные обновляются часто, а какие-то редко. Компоненты, которые используют редко обновляемые данные можно закешировать и рендерить реже

  • @kinderhero8897
    @kinderhero8897 3 роки тому

    +

  • @alexup7437
    @alexup7437 3 роки тому

    Не совсем понял как экспортировать один и тот же компонент с мемо и без

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      export const Component = () => { ... }
      export default memo(Component)

  • @mikesummer670
    @mikesummer670 2 роки тому +1

    Польза от использования двойного экспорта ощутимо меньше чем вред от некрасивого кода его написания. Даже в этом подтянутом за уши примере красивее было бы isOnline && !isBlockedMe передавать, но и проп тогда переименовать из isOnline в isShowOnline т к фактически этот проп отржает не факт того что юзер онлайн, а отвечает на вопрос "следует ли показывать значок онлайн".
    Но прием интересный все равно)

    • @it-sin9k
      @it-sin9k  2 роки тому

      Согласен, на проекте, я бы тоже не пушил делать двойные экспорты :)

  • @NikVolkov
    @NikVolkov 2 роки тому

    Наижирнейший )

  • @ReAgent003
    @ReAgent003 11 місяців тому

    8:39
    - "Мемо сэкономит вам хотя бы 1 из 10 рендеров?"
    - "Ответ - однозначно да"
    Но почему? Не понимаю

    • @it-sin9k
      @it-sin9k  11 місяців тому

      так там же блок схема, это вопрос. "Если сэкономит, то идите по этой ветке"

    • @ReAgent003
      @ReAgent003 11 місяців тому

      @@it-sin9k понял, спасибо за быстрый ответ, ты очень крут!

  • @ko22012
    @ko22012 Рік тому

    На самом деле эти примеры выдуманные, все равно надо на реальных примерах оценивать, нужно применять memo или нет.

  • @starwalker.odessa
    @starwalker.odessa 2 роки тому

    Мне одному кажется что функциональное программирование и react hooks ...скорее - НЕ помогают, а - заставляют (разработчика) попадать "в просак"?
    Не видел подобную дичь ни в angular, ни во vue, ...но данные примеры говорят о том, что функциональные react - перестал быть простым и очевидным. Такие решения от разработчиков react позволяют разработчику снизить з.п. до уровня плинтуса, потому как подводных камней стало больше. Функциональное программирование - зло, ...use OOP!

    • @it-sin9k
      @it-sin9k  2 роки тому

      Я бы не сказал, что ООП, простое и очевидное, возможно вы его знаете и вам кажется, что ну это то понятно. Реакт в качестве доводов создать хуки аргументировал, что новичкам сложнее понять классы, чем хуки. Поэтому возможно с вашими текущими знаниями, кажется что хуки сложнее. Тем более еще не выработаны в ней бест практисы, никто не может ответить как правильно писать и это все усложняет ситуацию. Как по мне, мне нравятся хуки, я не очень люблю ООП) А возможно все это дело вкуса просто)) хз короче)

  • @fuad2069
    @fuad2069 Рік тому +1

    Если Дэн это как наш Марк цукерберг, то ты как Кайл Симпсон, ты оффигительный исследователь!! Молодец!!

    • @it-sin9k
      @it-sin9k  Рік тому

      Спасибо!) будем стараться и дальше исследовать)

  • @andys9810
    @andys9810 4 місяці тому

    Жирный лайк Синяку!

  • @AndreyShevchenko-yd3tg
    @AndreyShevchenko-yd3tg 3 роки тому

    Жирный лайк Синяку!!

  • @aaamre4840
    @aaamre4840 3 роки тому +7

    Жирный лайк Синяку!

  • @AbraKadabra000
    @AbraKadabra000 3 роки тому +5

    Жирный лайк Синяку!

  • @user-qo2ih1zv5c
    @user-qo2ih1zv5c Рік тому

    Жирный лайк Синяку!

  • @user-ge2qk4cm1j
    @user-ge2qk4cm1j 2 роки тому

    Жирный лайк Синяку!

  • @heorhiipodliehaiev1481
    @heorhiipodliehaiev1481 2 роки тому

    Жирный лайк Синяку!

  • @gatrianL
    @gatrianL 3 роки тому

    Жирный лайк Синяку!!!

  • @INGolub
    @INGolub 3 роки тому

    Жирный лайк Синяку!

  • @nikitaivanov4153
    @nikitaivanov4153 3 роки тому

    Жирный лайк Синяку!

  • @TRON585
    @TRON585 3 роки тому

    Жирный лайк Синяку!

  • @mchl_plstv
    @mchl_plstv 3 роки тому

    Жирный лайк Синяку!

  • @user-ku2hc3mr3m
    @user-ku2hc3mr3m 3 роки тому

    Жирный лайк Синяку!

  • @underpog5347
    @underpog5347 3 роки тому

    Жирный лайк Синяку!

  • @maksymlukianenko4165
    @maksymlukianenko4165 3 роки тому

    Жирный лайк Синяку!

  • @andreyshevchenko4602
    @andreyshevchenko4602 3 роки тому

    Жирный лайк Синяку!

  • @awesome1633
    @awesome1633 3 роки тому

    Жирный лайк Синяку!

  • @andriybroda1340
    @andriybroda1340 3 роки тому

    Жирный лайк Синяку!

  • @SergeyLevkovich
    @SergeyLevkovich 2 роки тому

    Жирный лайк Синяку!

  • @4opper1
    @4opper1 3 роки тому

    Жирный лайк Синяку!

  • @TheGuck111
    @TheGuck111 3 роки тому

    Жирный лайк Синяку!

  • @alexeyshaykov
    @alexeyshaykov 3 роки тому

    Жирный лайк Синяку!