React видеокаст #2 Полное введение в Хуки

  Рет қаралды 12,320

webDev

webDev

Күн бұрын

#YauhenK #webDev #React
Всех приветствую в скрин-касте «React видеокаст».
И в этом выпуске мы с вами рассмотрим такое понятие как React Hook (Хук). Разберёмся зачем они нужны, синтаксис их создания, использования, а так же их особенности. Рассмотрим каким образом они расширяют возможности функциональных Реакт-компонентов. Представленные хуки делятся на базовые и дополнительные, но мы с вами рассмотрим только базовые. Так как именно базовые хуки с большей вероятностью могут появится в ближайших обновлениях библиотеки React. К базовым хукам можно отнести:
useContext - Хук для использования контекста.
useState - Хук для использования стейта внутри функционального компонента.
useEffect - Хук, аналог методов жизненного цикла.
А так же в небольшое дополнение мы рассмотрим создание пользовательских хуков.
✒ Репозиторий видео-каста:
✔ GitHub: github.com/Yau...
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R...
✒ Автор курса:
✔ KZbin: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenK...
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/Yau...
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/Yau...

Пікірлер: 67
@БекназарКемелов
@БекназарКемелов 4 жыл бұрын
Тайм-код: Intro - 3:32 useContext - 6:26 useState - 9:49 useEffect - 15:09 custom(пользовательские) hooks - 23:00 Спасибо автору!
@КонстантинК-ю1м
@КонстантинК-ю1м 5 жыл бұрын
Спасибо, очень понятное объяснение! Как раз вчера разбирался с хуками, бился с бесконечным ререндером :)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
@alex65656
@alex65656 5 жыл бұрын
Очень крутой видос, все грамотно рассказано, качественно подано. Спасибо за вашу работу!)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо большое за отзыв!
@alexmorgan1030
@alexmorgan1030 5 жыл бұрын
Спасибо, отличные подкасты. Всё очень доходчиво!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо большое за фидбэк!
@zoojs
@zoojs 5 жыл бұрын
Большое спасибо! Отлично объясняете!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
@ШураБосс
@ШураБосс 5 жыл бұрын
Спасибо большое! Отличный обзор возможностей!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
@Teardrop-u4z
@Teardrop-u4z 5 жыл бұрын
Очень понятно и доходчиво.
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо!
@tamerlan881
@tamerlan881 5 жыл бұрын
Спасибо за видео. Очень полезно было. На 17:49 ошибка в коде. Если убрать 22 строку, то все равно будет изменяться width. Нужно написать const handleWidth = () => setWidth(window.innerWidth);
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Да, полностью согласен!) Спасибо большое, поправил и в репозитории!
@zoojs
@zoojs 5 жыл бұрын
Блин, не понял. А можете объяснить зачем создавать функцию handleWidth?
@Мишаня-ю9б
@Мишаня-ю9б 2 жыл бұрын
@@zoojs addEventListener вторым параметром принимает callback(handleWidth) который запускается при изменении окна.
@Rapterlol
@Rapterlol 5 жыл бұрын
Очень доступно объяснил! Спасибо большое!!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!
@user-ei9jd7pw4s
@user-ei9jd7pw4s 5 жыл бұрын
Крутяк, СПАСИБО!!! Супер понятно и просто.
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста!)
@prsion1925
@prsion1925 5 жыл бұрын
Вы лучший - Спасибо!!! даже я чайник который только знает три метода call bind и apply и все время не помнит методы массивов и ТО что-то понимаю)!!!!!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо за отзыв!)
@oerbyy
@oerbyy 5 жыл бұрын
Отличный видос! Просто супер, занесу в шпаргалки! Спасибо 8)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста
@lexxin0502
@lexxin0502 3 жыл бұрын
Большое спасибо Евгений отличный выпуск! какая у Вас стоит цветовая тема на редакторе?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста, ох честно не скажу это было почти 2 года назад, много воды утекло...)
@erwererwrwr
@erwererwrwr 5 жыл бұрын
Спасибо за урок, Евгений! Все по полочкам Будет ли ещё в будущем что-то разобрано по хукам?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Думаю да. Как только они будут добавлены в официальный релиз тут же сниму новый подкаст с разбором. Т.к. уже сейчас видно, что будут дополнения)
@Andrew-strong
@Andrew-strong 6 жыл бұрын
Спасибо за грамотное объяснение! Ваш канал на сегодняшний момент - лучший по Реакту! Вопрос по рассмотренному материалу: вы на "
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Во-первых, спасибо за отзыв! Во-вторых, на счёт стрелочной функции - вас учили правильно. Просто при каких-то демо на много быстрее использовать стрелочные функции, т.к. Это не реальная разработка, а просто пример. В-третьих, спасибо за информацию о личном сайте, это очень старая версия, давно должна была закрыться, т.к. Потерял доступ
@npc6110
@npc6110 6 жыл бұрын
Было бы хорошо если бы написали какое то маленькое приложение с hooks. Но и так норм
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо!)
@zoojs
@zoojs 5 жыл бұрын
Так он же написал, разве нет?)
@МаксимНырков-у6г
@МаксимНырков-у6г 5 жыл бұрын
а вот и стейт появился в функциях)) ура!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
То о чём я и говорил)
@VitalyLiber
@VitalyLiber 5 жыл бұрын
Оч круто! Подписался =)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Круто!)
@stasdusha
@stasdusha 5 жыл бұрын
Красапета! Хорошо обьясняешь
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо)
@stasdusha
@stasdusha 5 жыл бұрын
@@YauhenKavalchuk Давай еще саспенс и и дата саспенс?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Честно говоря, в этих подкастах я планировал рассказывать о том что появляется с выходом новой версии (мажорные изменения). Хуки - это было не большое исключение. Хотя не исключено, что расскажу про suspense, но это не точно)
@stasdusha
@stasdusha 5 жыл бұрын
@@YauhenKavalchuk Потому что хуки пушка! Они очень изменят стиль написания реакт приложений, это точно. Ну а саспенс то уже есть
@dzmitrysamsonau3586
@dzmitrysamsonau3586 5 жыл бұрын
красавчик Женя
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо!)
@abathojalyk1625
@abathojalyk1625 4 жыл бұрын
Cool! Vse chetko, bez vody.
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
👍
@jony4you
@jony4you 6 жыл бұрын
тоже, что и в либе recompose, только теперь не надо врапать компоненты
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Возможно, лично мне не доводилось с ней работать)
@pumych
@pumych 5 жыл бұрын
Спасибо за понятное обьяснение. 16.38 А если не добавлять document.title = value; внутрь useEffect, то работать не будет?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Будет
@ЕвгенийЖ-н6м
@ЕвгенийЖ-н6м 4 жыл бұрын
Евгений, почему то ваш код из гита выдает ошибку при нажатии на кнопку Warning: An effect function must not return anything besides a function, which is used for clean-up. It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: useEffect(() => { async function fetchData() { // You can await here const response = await MyAPI.getData(someId); // ... } fetchData(); }, [someId]); // Or [] if effect doesn't need props or state Learn more about data fetching with Hooks: fb.me/react-hooks-data-fetching in App (at src/index.js:7) index.js:1452 The above error occurred in the component: in App (at src/index.js:7) Consider adding an error boundary to your tree to customize error handling behavior. Visit fb.me/react-error-boundaries to learn more about error boundaries. index.js:1452 TypeError: destroy is not a function Подскажите пожалуйста в чем дело ?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
В официальной версии изменился синтаксис. Посмотрите следующий выпуск, я там говорю об этой проблеме
@МаксимНырков-у6г
@МаксимНырков-у6г 6 жыл бұрын
Приветствую! В будущем от классов может вообще избавятся в реакте? Будут только функции
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Пока об этом никакой информации) Возможно...)
@bogdanshelomanov5668
@bogdanshelomanov5668 5 жыл бұрын
вот так только отрабатывает () => setWidth(window.innerWidth)
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
В комменариях о этой проблеме писали, можно найти. В любом случае, в репозитории актуальная версия.
@davtian1674
@davtian1674 5 жыл бұрын
аа как обновить состояние пользовательского хука
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Либо логика внутри хука через useState, либо передаёте снаружи
@bogdanshelomanov5668
@bogdanshelomanov5668 5 жыл бұрын
такой же код, но addEventListener не срабатывает
@dmitrymukhin9458
@dmitrymukhin9458 5 жыл бұрын
const handleWidth = () => setWidth(window.innerWidth) надо
@zoojs
@zoojs 5 жыл бұрын
@@dmitrymukhin9458 а почему? И куда это вставлять?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
¯\ _(ツ)_/¯
@АлексейВатман-з2ф
@АлексейВатман-з2ф 5 жыл бұрын
скажите пожалуйста, какой шрифт вы используете здесь в редакторе? очень понравился
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Точно не помню, но вроде Anka/Coder. Вообще это плагин для Atom - Fonts, там полно хороших шрифтов
@АлексейВатман-з2ф
@АлексейВатман-з2ф 5 жыл бұрын
@@YauhenKavalchuk спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста
Все хуки ReactJS за 1 час
1:11:08
Веб-разработка - DevMagazine
Рет қаралды 20 М.
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 29 МЛН
小天使和小丑太会演了!#小丑#天使#家庭#搞笑
00:25
家庭搞笑日记
Рет қаралды 45 МЛН
Life hack 😂 Watermelon magic box! #shorts by Leisi Crazy
00:17
Leisi Crazy
Рет қаралды 73 МЛН
How To Get Married:   #short
00:22
Jin and Hattie
Рет қаралды 27 МЛН
React Hooks - Полный Курс (Про Все Хуки в 1 видео!)
1:47:00
Владилен Минин
Рет қаралды 445 М.
Визитка программиста
20:59
Александр Красников
Рет қаралды 24 М.
Металл будущего. Как производят титан
25:41
Анатомия Монстров
Рет қаралды 276 М.
Программисты-самоучки... Слушайте внимательно.
22:45
Евгений Афанасьев
Рет қаралды 85 М.
React JS #15 Контекст (React Context)
11:00
webDev
Рет қаралды 29 М.
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 29 МЛН