React JS #12 Ссылки (Refs)

  Рет қаралды 18,422

webDev

webDev

Күн бұрын

Пікірлер: 40
@iuriivatazhyshyn1568
@iuriivatazhyshyn1568 4 жыл бұрын
Даже понять не могу Кто же ети люди, что за такой качевственний контент ставят дизлайки. Спасибо за видео!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Спасибо за отзыв)
@dvergilyush
@dvergilyush 4 жыл бұрын
это не дизлайки, а лайки, которые ставят австралийцы :)
@yusufrahimov9160
@yusufrahimov9160 Жыл бұрын
Спасибо за то, что вы потратили время и усилия на создание этого видеоурока. 💪 Это действительно помогло мне улучшить мои знания по теме. 📈
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Спасибо большое
@Ramosok
@Ramosok 2 жыл бұрын
Сколько у тебя полезных роликов. Спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@ШураБосс
@ШураБосс 6 жыл бұрын
Круто, спасибо большое за качественный контент!
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо и вам за обратную связь
@alexsoft7073
@alexsoft7073 4 жыл бұрын
отличное видео. спасибо)
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста
@marabej
@marabej 2 жыл бұрын
Хороший урок. Только одна заметка. refs довольно използваемая щука. Я занимался с react native и там за мой проект употреблял часто refs. дело в том что иногда render довольно медленной. Часто приходилось използуват прямой доступ до елемент с метод типа SetNattiveProps. Я вам честно скажу, что иногда не хватает концепция "сделай возможно болше компонентов чтоб ускорить рендеринг и обновляй только то что нужно". Часто с цель performance приходилось прямий доступ чрез refs. Кроме того можно реализирует механизм за доступ от родителских компонент к елементов внутрии дочерного компонента (за React Native, за React я не знаю).
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Согласен, у ref больше возможностей чем описано, есть ещё вариант записывать и хранить данные в ref, так как это быстрее
@some_body_qtyeeuy
@some_body_qtyeeuy 2 жыл бұрын
Есть ролик про useCallback и useMemo?
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
В плейлисте React videocast
@slavik.nychkalo
@slavik.nychkalo 3 жыл бұрын
Спасибо за видео! НО есть вопросы к такому хендлингу форм, зачем использовать controlled и uncontrolled (в совокупности) подход к работе с формами?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Возможно, я допустил ошибку. Нету плюсов такого подхода - форма всегда должна контролироваться
@DubinArtur
@DubinArtur 3 жыл бұрын
Переделать звучит грубо, обидно, а вот проабдейтить или зарефакторить самое то)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Учту
@Вебануться-ф7т
@Вебануться-ф7т 5 жыл бұрын
Подскажите пожалуйста, а если я динамически через цикл создаю элементы DOM. Как динамически мне также создать все refs (createRef())?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Да, можно и так. Хотя, как я и говорил ref желательно использовать по минимуму.
@Вебануться-ф7т
@Вебануться-ф7т 5 жыл бұрын
@@YauhenKavalchuk Спасибо за ответ, но я именно спрашивал про способ реализации :) Не совсем понимаю как createRef() можно в цикле прописать
@demik3106
@demik3106 4 жыл бұрын
@@Вебануться-ф7т можно вот так в конструкторе класса прописать: const refs = ['inputRef', 'areaRef'] .forEach(item => ( this[item] = React.createRef() ));
@pendalfgrey1
@pendalfgrey1 5 жыл бұрын
Как насчет такого? state = { name: "", phone: "", }; handleChange = (values, event) => { this.setState({ [values]: event.current.value }); }; onChange={this.handleChange.bind(this, "name")} onChange={this.handleChange.bind(this, "phone")}
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Тоже вариант
@vanyavoskres
@vanyavoskres 5 жыл бұрын
state = { firstName: "", secondName: "" } handleChange = (e) => { const {name, value} = e.target; this.setState({ [name]: value }) } render() { const {firstName, secondName} = this.state; return ( ) }
@jenyaspace
@jenyaspace 6 жыл бұрын
не знаете как получить детей на рефу? например current.childNodes ничего не видит
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
А что мешает прицепить ref на все нужные элементы?
@jenyaspace
@jenyaspace 6 жыл бұрын
@@YauhenKavalchuk это не возможно сделать т.к. дети моего компонента находятся во внешней библиотеке, к ним нет доступа
@TORREScs
@TORREScs 5 жыл бұрын
у меня ругается редактор на то что inputRef textreaRef и selectRef not defind. почему у вас не ругается, а у меня ругается? и не могу применить такой вариант inputRef = React.createRef()
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Перепроверьте версию Реакта, которую вы используете. Плюс, в описании видео есть ссылка на GitHub репозиторий, так что можете свериться
@TORREScs
@TORREScs 5 жыл бұрын
@@YauhenKavalchuk спасибо, большое!
@МаксимНырков-у6г
@МаксимНырков-у6г 5 жыл бұрын
во, и МЖЦ тут описал. Вот бы так в прошлом видео
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Тогда бы получилось, что 2 раза рассказал одно и тоже)
@iGotton
@iGotton 5 жыл бұрын
+
@АлександрА-ф3ъ7л
@АлександрА-ф3ъ7л 6 жыл бұрын
Хм, да, мы избавились от тех прохожих методов, но при этом у нас теперь будут перерисовываться все 3 компонента при изменении одного из них. На данном примере это не ощутимое различие, а вот в более крупном проекте думаю может ударить по производительности
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
А мне так не кажется. В конце концов страницы с формами пытаются всегда сделать как можно меньше, что бы они не пугали юзера. Поэтому я думаю что ничего критического в производительности произойти не должно
@VitaliiSnitsar
@VitaliiSnitsar 5 жыл бұрын
Возможно я чего-то не понимаю, но как по мне ничего не изменилось. В первом случае с методами, мы сетили в стейт значение для каждого элемента отдельно, что в свою очередь перезапускало рендер и перерисовывался элемент, для которого изменилось значение в стейт. Остальные оставались без изменений, то есть перерисовывался 1 элемент. Во втором случае мы сетим значения со всех элементов вместе. После чего срабатывает рендер и перерисовывается опять таки один элемент в которого изменилось значение в стейте. Для остальных элементов значения которые хранятся в стейте остались прежними и виртуал дом должен их пропустить и не перерисовывать. Получается что перерисуется опять только 1 элемент. Поправьте меня если ошибаюсь.
@stlyak
@stlyak 3 жыл бұрын
Ну во-первых, у нас не 3 компонента, а 1, и в любом случае, каким способом ты не повесь обработчики, метод render у компонента Form будет вызываться каждый раз при изменении любого из полей. Это первое. Во-вторых, даже если вы замените поля на отдельные компоненты (что вы скорее всего имели в виду), то при вызове setState на компоненте-родителе все render'ы на дочерних компонентах обязательно вызовутся. Так задумано в React изначально. Чтобы не отрисовывать дочерние компоненты, вам нужно в их методе shouldComponentUpdate вернуть false, а это уже другая история и это не зависит от того, будет ли один обработчик для всех полей или будет на каждое поле свой обработчик. Чтобы сэкономить на лишних рендерах, вам нужно в дочерний компонент пробросить через пропсы value, а в методе shouldComponentUpdate сравнить текущий value у пропс, с тем, который прилетит при изменении стейта родителя.
@Мишаня-ю9б
@Мишаня-ю9б 2 жыл бұрын
@@stlyak Все правильно сказал про setState, просто ref помогает свести кол-во обработчиков к минимуму но его лучше не использовать где попало тк React это все таки декларативный подход.
React JS #15 Контекст (React Context)
11:00
webDev
Рет қаралды 30 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
ErrorElement для обработки ошибок в React приложении
14:18
Михаил Непомнящий
Рет қаралды 15 М.
React Refs Explained with Examples | React useRef Tutorial
10:31
Coding With Chaim
Рет қаралды 8 М.
Learn React Hooks: useRef - Simply Explained!
12:42
Cosden Solutions
Рет қаралды 119 М.
52 - React JS практика - Side Effect
12:46
IT-KAMASUTRA
Рет қаралды 57 М.
Жизненный цикл React компонентов | Все что нужно знать за 12 минут
12:17
Frontend Fundamentals | Александр Караджиков
Рет қаралды 7 М.
Как ПРАВИЛЬНО передать данные между компонентами React?
21:42
Веб-разработка - DevMagazine
Рет қаралды 28 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41