УЛУЧШАЕМ РАБОТУ С КОЛБЭК РЕФАМИ | React Hooks | Ref Callback

Поділитися
Вставка
  • Опубліковано 20 січ 2025

КОМЕНТАРІ • 31

  • @v.demchenko
    @v.demchenko 4 місяці тому

    Если кто то, что то не понял. Это нормально)
    Я вот вернулся к данному видео спустя год.
    И вот сейчас все встало на свои места.
    Аюбу спасибо за такие видео!

  • @2difficult2do
    @2difficult2do Рік тому +2

    Вы хорошо и подробно объясняете свой код. Реально полезно и интересно получается. Спасибо! ☝️😻👍

  • @ivankurchin7181
    @ivankurchin7181 Рік тому +4

    Привет! Спасибо огромное за видео, очень полезно!
    А мог бы ты сделать подробное видео о профилировании и, возможно, оптимизации при помощи профилировщика и дев тулов? Как пользоваться, как читать метрики и т.д. ❤

  • @ЕгорЛазука-й1э
    @ЕгорЛазука-й1э Рік тому

    Дякуй!

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

    комментарий в поддержку канала

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

    Интересный подход 👍

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

    👏👍

  • @МарияЧерешня-у2й

    🎉

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

    А если заиспользовать функцию возвращаемую хуком сразу 2 раза, но по разному, в div передать c аргументом, а во вложенный div без аргументов, тогда universalRef вызовется и установит refsToUpdate в null, не сломает ли это логику в каких-то случаях?

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

    Как по мне лучше через combineRef, чтобы исключить недопонимание

  • @rmnkot
    @rmnkot Рік тому +4

    Основной минус для меня - неочевидность такого апи. С useCombineRef как и с combineReducer все знакомо и понятно, семантично даже ). Я б затащил его лучше в прожект. Касательно useResizeObserver мне удобнее дополнительно параметризировать рефами его, а не колбек. Спасибо

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

      Ну а universalRef - uscombineRef на максималках

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

      По поводу неочевидности согласен, что тут тоже какое-то понимание должно быть...
      Жаль видео так мало просмотров набрало, было бы интересно услышать мнение других.

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

      Ты никогда в жизни не сможешь обьяснить коллеге из Индии как оно работет. Коллега из Европы, потратив 46 секунд на ревью такое никогда не заапрувит. Американец на ревью будет мурыжить там вопросами недели три и затем все закроется с вежливой резолюцией need to revise.
      Только таким подорваным ребятам, как ты интересно такое писать и так мыслить, но даже вы, через месяц глядя на такой "universal", ища баг ( там кажись надо было not null в одном месте, я на 12й минуте) будете проклинать все вещества,
      под которыми такое пишется ;)

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

      Тааак, я уже на 17й минуте, ошибку с null ты нашел быстро, но, это - ты, а коллега с Бразилии будет искать её весь спринт, а потом стуканет на тебя эрэму за overengeneering на ближайшем 1to1
      После добавления типизации - стало непонятно всё и теперь нечитаемо, от слова совсем.
      Тим лид твой скажет - не думаю, что нам такое нужно.
      Аюб, где надо реф, нам хватит useRef. Если надо два рефа.... для resizeObserver? Ну добавь еще один div и слушай его ресайс.
      Что ты говоришь? А если три ? Больше?
      Давай,решать проблемы по мере поступления.
      А ты - хоть убейся не сможешь доказать никому из их всех эту элегантность и как ты совладал с этим и предусмотрел все эдж.кейсы :)
      Да, ентерпрайс, он такой😢

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

      Тю... ну так это если для себя или спрятано и сминимизировано в библиотеку, то очень даже норм.

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

    Каждый раз, смотря твои видео, Я радуюсь, что в свое время выбрал Vue)

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

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

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

    Попахивает jQuery, разное поведение в зависимости от параметров, лучше через combine

  • @v.demchenko
    @v.demchenko 4 місяці тому

    Я думаю сюда можно добавить паттерн Стратегия.
    Где в зависимости от случая сетить стратегию на выполнение кода с null, с 1 аргументом и с несколькими аргументами.
    Strategies:
    NullStrategy
    OneElementStrategy
    ArrayStrategy
    Implementation:
    if (args === null) {
    setStrategy(NullStrategy)
    }
    //args[0] will be node when react will call fn universalRef
    if (args.length === 1 && !isRef(args[0])) {
    setStrategy(OneElementStrategy)
    }
    if (args.length >= 2) {
    setStrategy(ArrayStrategy)
    }
    execute()