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