Урок 4. Введение в React Hooks: useReducer
Получить профессию Frontend разработчика -
bit.ly/3If22rB
Подробнее узнать об обучении в Result School -
bit.ly/3HPFrRp
Бесплатный курс HTML & CSS - bit.ly/3TcDcPg
Сделать 5 проектов на JavaScript - bit.ly/3IdeHLG
Я в соц сетях:
Telegram: t.me/js_by_vladilen
VK: vk.com/vladilen.minin
Instagram: / vladilen.minin
Мои паблики по JavaScript:
Telegram: t.me/result_school_it
VK: vk.com/result.school
Instagram: / result.scho. .
JavaScript cообщества:
Discord: / discord
Telegram: t.me/js_by_vladilen_chat
Roadmap по каналу:
vladilen.notion.site/Roadmap-...
В этом видео вы узнаете про нововведение в React 16.8+, которое называется hooks.
Эта возможность позволяет писать приложения на React используя только функциональный компоненты.
В ролике будет разобран хук useReducer, позволяющий упростить код компонентов и вынести логику в отдельный файл
Ссылка на исходники:
github.com/vladilenm/youtube-...
Владилен, было бы круто увидеть от тебя подробный обзор хуков, которые отвечают за оптимизацию компонентов (useMemo, useCallback и пр). Или просто видео про оптимизацию в React. С твоей подачей материала это было бы бесценно)))
Спасибо за интересную и грамотную подачу материала.
У вас классная фамилия)
@@VladilenMinin Согласен. У Вас не хуже.
Я по моемук как-то в два действия подключался к редаксу и мне казалось, что это очень круто и быстро вместо всех этих коннект, мап-ту-пропс и т.д. А тут вообще в одну строку! Круто!
Спасибо за твои работы
Спасибо за урок!
вы отличный учитель, респект вам
Спасибо огромное вам
Очень полезная информация!
Спасибо за видео, запили пожалуйста об UseMemo
toggle не работает - одну галочку ставит. После обновления страницы можно ещё одну добавлять
А как быть с изменением инпутов? Например, как переделать setName(e.target.value) под редюсер?
@Владилен Минин А как передать состояние useState например из todoListItem.js наверх в app.js? или здесь уже нужен useReducer
храни состояние в app.js и передавай в todoListItem.js, а не наоборот
Спасибо что создал свой канал, давно надо было это сделать. Есть одно пожелание, пожалуйста, не увлекайся ускорением видео с написанием кода, при объяснении чего то нового такой подход не очень.
Благодарю за фидбек, учту это. Тут формат роликов был немного иной, в других я буду аккуратней)
@@VladilenMinin Поддерживаю просьбу. Есть канал где в принципе все тоже не плохо объясняется, но автор злоупотребляет ускорением видео, что выбивает из колеи, когда ты пишешь код и проговариваешь логику воспринимается гораздо лучше.
но это же не радио или телевизор. можно нажать паузу и посмотреть подробно.
Спасибо, отличные уроки 👍 Жаль, нет продолжения про хуки.
спасибо. Вот бы ещё про localStorage поподробнее..
При таком подходе считается норм, если редюсер - не чистая функция?
да только надо еще дописать, для пустого массива const [state, dispatch] = useReducer(reducer, (JSON.parse(localStorage.getItem('todos')) || []))
Вот тут хорошо сказал,а то ошибку выводит =)) все время null да null
error у меня голова горела сегодня почему так=))
const [state, dispatch] = useReducer(reducer, (JSON.parse(localStorage.getItem('todos')) || JSON.stringify([]))) The cleanest way, without any errors! :))))
@@NazarMalyy why do you parse array in first case but stringify in second?
@@mikaelgevorgyan4521 потому что тайпскриптом надо пользоваться и не было бы таких глупых ошибок
Спасибо. Очень полезное видео. Подскажите, сейчас лучше/популярнее писать на хуках или же как раньше через React.Component?
Сейчас имеет смысл писать на хуках вообще везде, где не требуется точного функционала, типа life cycle hooks или более точечной работы
пишу из будущего. Теперь вообще всё на хуках работает... )
Интересный материал) Спасибо за работу! Целесообразно ли использовать несколько useReduser(один к примеру для отправки формы, другой для работы с WebSocket)? И Context.Provider может быть несколько в проекте? И можно ли в один Context.Provider сразу несколько useReduser?
В этом и идея, что их может быть много Посмотри видео на канале про создание приложения на реакт Есть на канале
в case 'toggle' лучше сделать вот так: return {...todo,completed:!todo.completed}. Иначе в React.StrictMode не работает переключение из-за двойного рендера(идея не моя)
спасибо, все коротко и понятно) вопрос: какой должна быть структура большого проекта?! Отдельная папка для компонентов, отдельная для редюсеров?! может запиши видео)))
Согласен, годный вопрос
ничего не понятно. пролетел
Спасибо за видео ) Жаль у тебя по реакту больше нет видосов.
Благодарю за отзыв) Пока делаю акцент на Vue, по React возможно позже будет много практики
@@VladilenMinin , ух-т. Это будет просто нереально круто. У тебя здорово получается раскладывать по полочкам )
@@dicoder5978 🙏
спустя 2 года все пазлы наконец сошлись )
Спасибо за уроки по хукам, продолжение будет? хотим более advanced техники работы с ними
Пока не планировал. Есть пример создания своего хука в видео по реакту за 80 минут
а почему checkbox нажимается толко один раз? потому что map не триггерит useEffect?
Нашел решение?
привет, можно ли юзать useReducer для управления состоянием без useContext ? или редюсер только изменяет состояние, а контекст уже его передает по всему приложению ?
Конечно можно Все верно
Все работает ОК, пока не порпробуешь hosting (напр. на firebase) :react-dom.production.min.js:4408 TypeError: Cannot read property 'map' of null, DevTools failed to parse SourceMap: hooks-todo-3c6f8.firebaseapp.com/jquery.contextMenu.min.js.map DevTools failed to parse SourceMap: hooks-todo-3c6f8.firebaseapp.com/static/js/main.45885405.chunk.js.map
Получается, что Hooks имеюют полный функционал концепции Redux и последний уже не нужен, раз есть нативный инструмент? Тут и state, и action, reducer, dispatch... все тоже самое или я не прав? Спасибо за ответ.
Нет, хуки это всего лишь функции. Но один из них позволяет использовать редюсер для управлением состоянием. Совместно с контекстом они могут заменить всю систему управлением данных. Почти как ангуляр сервисы
Это получается тот же Redux только удобнее без лишних наворотов, не нужны всякие mapstatetoprops и mapdispatchtoprops.
Привет, а когда будет курс по React Native?
Привет, пока не знаю точно, ближайшее планирую NodeJS
@@VladilenMinin былобы супер по React Native
@@user-cy4js3xv7w у меня есть в планах, пока деделываю и обновляю старые курсы
по native ни одного курса на русском нету. Создай курс на юдеми, куплю.. Ну прям очень надо)
Первые 3 хука были объяснены по-лучше. Здесь как-то все очень скомкано. Например мне, как начинаюшему и не очень умному человеку, совершенно не понятен принцип работы reducer.js: откуда там берется state, если в dispatch({...}) мы передаем только 1 параметр, который каким-то чудом потом превращается в action (второй параметр в reducer.js). Это видео было сделано просто для галочки чтоли?
Разобрался?
@@yakut54 это год назад было, я уж и не помню, честно ))
Ссылка на репозиторий в описании битая
Поправил
про самое главное не сказали
Пишите код с нуля
Курс на 25 минут, а разобрался с ним за 1:20
вы отличный учитель, респект вам