Привет! Спасибо огромное за видео, очень полезно! А мог бы ты сделать подробное видео о профилировании и, возможно, оптимизации при помощи профилировщика и дев тулов? Как пользоваться, как читать метрики и т.д. ❤
Если кто то, что то не понял. Это нормально) Я вот вернулся к данному видео спустя год. И вот сейчас все встало на свои места. Аюбу спасибо за такие видео!
Я думаю сюда можно добавить паттерн Стратегия. Где в зависимости от случая сетить стратегию на выполнение кода с 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()
А если заиспользовать функцию возвращаемую хуком сразу 2 раза, но по разному, в div передать c аргументом, а во вложенный div без аргументов, тогда universalRef вызовется и установит refsToUpdate в null, не сломает ли это логику в каких-то случаях?
Основной минус для меня - неочевидность такого апи. С useCombineRef как и с combineReducer все знакомо и понятно, семантично даже ). Я б затащил его лучше в прожект. Касательно useResizeObserver мне удобнее дополнительно параметризировать рефами его, а не колбек. Спасибо
По поводу неочевидности согласен, что тут тоже какое-то понимание должно быть... Жаль видео так мало просмотров набрало, было бы интересно услышать мнение других.
Ты никогда в жизни не сможешь обьяснить коллеге из Индии как оно работет. Коллега из Европы, потратив 46 секунд на ревью такое никогда не заапрувит. Американец на ревью будет мурыжить там вопросами недели три и затем все закроется с вежливой резолюцией need to revise. Только таким подорваным ребятам, как ты интересно такое писать и так мыслить, но даже вы, через месяц глядя на такой "universal", ища баг ( там кажись надо было not null в одном месте, я на 12й минуте) будете проклинать все вещества, под которыми такое пишется ;)
Тааак, я уже на 17й минуте, ошибку с null ты нашел быстро, но, это - ты, а коллега с Бразилии будет искать её весь спринт, а потом стуканет на тебя эрэму за overengeneering на ближайшем 1to1 После добавления типизации - стало непонятно всё и теперь нечитаемо, от слова совсем. Тим лид твой скажет - не думаю, что нам такое нужно. Аюб, где надо реф, нам хватит useRef. Если надо два рефа.... для resizeObserver? Ну добавь еще один div и слушай его ресайс. Что ты говоришь? А если три ? Больше? Давай,решать проблемы по мере поступления. А ты - хоть убейся не сможешь доказать никому из их всех эту элегантность и как ты совладал с этим и предусмотрел все эдж.кейсы :) Да, ентерпрайс, он такой😢