Даже понять не могу Кто же ети люди, что за такой качевственний контент ставят дизлайки. Спасибо за видео!
@YauhenKavalchuk4 жыл бұрын
Спасибо за отзыв)
@dvergilyush4 жыл бұрын
это не дизлайки, а лайки, которые ставят австралийцы :)
@yusufrahimov9160 Жыл бұрын
Спасибо за то, что вы потратили время и усилия на создание этого видеоурока. 💪 Это действительно помогло мне улучшить мои знания по теме. 📈
@YauhenKavalchuk Жыл бұрын
Спасибо большое
@Ramosok2 жыл бұрын
Сколько у тебя полезных роликов. Спасибо!
@YauhenKavalchuk2 жыл бұрын
Пожалуйста
@ШураБосс6 жыл бұрын
Круто, спасибо большое за качественный контент!
@YauhenKavalchuk6 жыл бұрын
Спасибо и вам за обратную связь
@alexsoft70734 жыл бұрын
отличное видео. спасибо)
@YauhenKavalchuk4 жыл бұрын
Пожалуйста
@marabej2 жыл бұрын
Хороший урок. Только одна заметка. refs довольно използваемая щука. Я занимался с react native и там за мой проект употреблял часто refs. дело в том что иногда render довольно медленной. Часто приходилось използуват прямой доступ до елемент с метод типа SetNattiveProps. Я вам честно скажу, что иногда не хватает концепция "сделай возможно болше компонентов чтоб ускорить рендеринг и обновляй только то что нужно". Часто с цель performance приходилось прямий доступ чрез refs. Кроме того можно реализирует механизм за доступ от родителских компонент к елементов внутрии дочерного компонента (за React Native, за React я не знаю).
@YauhenKavalchuk2 жыл бұрын
Согласен, у ref больше возможностей чем описано, есть ещё вариант записывать и хранить данные в ref, так как это быстрее
@some_body_qtyeeuy2 жыл бұрын
Есть ролик про useCallback и useMemo?
@YauhenKavalchuk2 жыл бұрын
В плейлисте React videocast
@slavik.nychkalo3 жыл бұрын
Спасибо за видео! НО есть вопросы к такому хендлингу форм, зачем использовать controlled и uncontrolled (в совокупности) подход к работе с формами?
@YauhenKavalchuk3 жыл бұрын
Возможно, я допустил ошибку. Нету плюсов такого подхода - форма всегда должна контролироваться
@DubinArtur3 жыл бұрын
Переделать звучит грубо, обидно, а вот проабдейтить или зарефакторить самое то)
@YauhenKavalchuk3 жыл бұрын
Учту
@Вебануться-ф7т5 жыл бұрын
Подскажите пожалуйста, а если я динамически через цикл создаю элементы DOM. Как динамически мне также создать все refs (createRef())?
@YauhenKavalchuk5 жыл бұрын
Да, можно и так. Хотя, как я и говорил ref желательно использовать по минимуму.
@Вебануться-ф7т5 жыл бұрын
@@YauhenKavalchuk Спасибо за ответ, но я именно спрашивал про способ реализации :) Не совсем понимаю как createRef() можно в цикле прописать
@demik31064 жыл бұрын
@@Вебануться-ф7т можно вот так в конструкторе класса прописать: const refs = ['inputRef', 'areaRef'] .forEach(item => ( this[item] = React.createRef() ));
не знаете как получить детей на рефу? например current.childNodes ничего не видит
@YauhenKavalchuk6 жыл бұрын
А что мешает прицепить ref на все нужные элементы?
@jenyaspace6 жыл бұрын
@@YauhenKavalchuk это не возможно сделать т.к. дети моего компонента находятся во внешней библиотеке, к ним нет доступа
@TORREScs5 жыл бұрын
у меня ругается редактор на то что inputRef textreaRef и selectRef not defind. почему у вас не ругается, а у меня ругается? и не могу применить такой вариант inputRef = React.createRef()
@YauhenKavalchuk5 жыл бұрын
Перепроверьте версию Реакта, которую вы используете. Плюс, в описании видео есть ссылка на GitHub репозиторий, так что можете свериться
@TORREScs5 жыл бұрын
@@YauhenKavalchuk спасибо, большое!
@МаксимНырков-у6г5 жыл бұрын
во, и МЖЦ тут описал. Вот бы так в прошлом видео
@YauhenKavalchuk5 жыл бұрын
Тогда бы получилось, что 2 раза рассказал одно и тоже)
@iGotton5 жыл бұрын
+
@АлександрА-ф3ъ7л6 жыл бұрын
Хм, да, мы избавились от тех прохожих методов, но при этом у нас теперь будут перерисовываться все 3 компонента при изменении одного из них. На данном примере это не ощутимое различие, а вот в более крупном проекте думаю может ударить по производительности
@YauhenKavalchuk6 жыл бұрын
А мне так не кажется. В конце концов страницы с формами пытаются всегда сделать как можно меньше, что бы они не пугали юзера. Поэтому я думаю что ничего критического в производительности произойти не должно
@VitaliiSnitsar5 жыл бұрын
Возможно я чего-то не понимаю, но как по мне ничего не изменилось. В первом случае с методами, мы сетили в стейт значение для каждого элемента отдельно, что в свою очередь перезапускало рендер и перерисовывался элемент, для которого изменилось значение в стейт. Остальные оставались без изменений, то есть перерисовывался 1 элемент. Во втором случае мы сетим значения со всех элементов вместе. После чего срабатывает рендер и перерисовывается опять таки один элемент в которого изменилось значение в стейте. Для остальных элементов значения которые хранятся в стейте остались прежними и виртуал дом должен их пропустить и не перерисовывать. Получается что перерисуется опять только 1 элемент. Поправьте меня если ошибаюсь.
@stlyak3 жыл бұрын
Ну во-первых, у нас не 3 компонента, а 1, и в любом случае, каким способом ты не повесь обработчики, метод render у компонента Form будет вызываться каждый раз при изменении любого из полей. Это первое. Во-вторых, даже если вы замените поля на отдельные компоненты (что вы скорее всего имели в виду), то при вызове setState на компоненте-родителе все render'ы на дочерних компонентах обязательно вызовутся. Так задумано в React изначально. Чтобы не отрисовывать дочерние компоненты, вам нужно в их методе shouldComponentUpdate вернуть false, а это уже другая история и это не зависит от того, будет ли один обработчик для всех полей или будет на каждое поле свой обработчик. Чтобы сэкономить на лишних рендерах, вам нужно в дочерний компонент пробросить через пропсы value, а в методе shouldComponentUpdate сравнить текущий value у пропс, с тем, который прилетит при изменении стейта родителя.
@Мишаня-ю9б2 жыл бұрын
@@stlyak Все правильно сказал про setState, просто ref помогает свести кол-во обработчиков к минимуму но его лучше не использовать где попало тк React это все таки декларативный подход.