React и Redux 3. Структура приложения, combineReducers, контейнеры.

  Рет қаралды 30,920

knowcity

knowcity

5 жыл бұрын

Предыдущее видео: • React и Redux 2. Подкл...
Redux: redux.js.org/
Flux: facebook.github.io/flux/
React: facebook.github.io/react/

Пікірлер: 96
@alexovs6226
@alexovs6226 5 жыл бұрын
Нужен четвертый урок про redux-saga) Я думаю меня большинство поддержит (лайками и не только)
@davronsherbaev9133
@davronsherbaev9133 5 жыл бұрын
согласен
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
kzbin.info/www/bejne/enico4uMZtB8ZtE
@cybersystem5137
@cybersystem5137 4 жыл бұрын
Полтора года назад я бы тоже поддержал. Да только вот спустя это время я как-то перестал понимать накой черт эта сага вообще, как и сам редакс! Глобальный стор это круто, конечно, да только в большинстве случаев он не нужен.
@ArturZalewski
@ArturZalewski 3 жыл бұрын
@@cybersystem5137 Понятно, но что делать, если проект окажется не самым свежим. Любому джуну, хотелось бы понимать и иметь возможность минимально поддерживать код. Классы, Редакс, возможно, на новых проектах не имеет смысла поддерживать, но есть куча старых, которые никто ради меня, такого ленивого переписывать не станет )))
@cybersystem5137
@cybersystem5137 3 жыл бұрын
@@ArturZalewski удивлю, но так всегда и везде происходит. А еще происходит так, что если ты понемногу отрефакторишь код и перепишешь его на более современные вещи (аккуратно, конечно), премию не дадут, но и возражать не будут. А работать тебе будет проще.
@yevheniirachkovan8101
@yevheniirachkovan8101 5 жыл бұрын
Спасибо за хороший и понятный урок) не зря год ждал
@alekseytsibulnikov3447
@alekseytsibulnikov3447 5 жыл бұрын
Прекрасный скринкаст. Спасибо! Все ясно и понятно. P.s. Было бы хорошо если бы ты выложил конечный код на гит.
@necelentano
@necelentano 5 жыл бұрын
Спасибо за отличный контент по Редаксу. Жаль, что выходит раз в году)
@serhii.chernenko
@serhii.chernenko 4 жыл бұрын
первое из многих видео, благодаря которому наконец-то понял о связке и правильной структуре и что для чего. спасибо
@rib0385
@rib0385 5 жыл бұрын
спасибо, благодаря уроку начал понимать оф документацию, лучшие уроки, которые видел
@andreyq9179
@andreyq9179 5 жыл бұрын
АВТОР у тебя талант! Записывай пожалуйста уроки чаще. Людям нравится!
@user-rk9ky9qf9j
@user-rk9ky9qf9j 5 жыл бұрын
Сегодня с часу дня сидел за технической документацией Redux, что-то писал, вроде как получалось, но в итоге получилась какая-то ..., посмотрел Ваш урок и все заработало! Спасибо большое! Желаю успехов и не оставляйте это дело, Вы делаете огромное добро другим людям
@ArturZalewski
@ArturZalewski 3 жыл бұрын
Концентрированно, полезно и ёмко. Несколько раз пересмотреть, один раз повторить и можно сказать, что в принципе, эта концепция усвоена. Спасибо за Ваш труд!
@Stan9326
@Stan9326 5 жыл бұрын
У тебя талант! Продолжай)
@nazarposhta
@nazarposhta 5 жыл бұрын
Отлично! Все понял и начал использовать redux в нашем проекте. Спасибо.
@Polite_person_
@Polite_person_ 4 жыл бұрын
Блин. Я 4 туториала по редаксу посмотрел и окончательно разобрался только после просмотра данного видео. Спасибо! Лайк и подписка.
@homovespertilio
@homovespertilio 4 жыл бұрын
Офигенный туториал! Я штук 30 перебрал и ютубовских и текстовых, только в этом смог четко понять что происходит!
@Kreator321RG
@Kreator321RG 5 жыл бұрын
отличный урок! спасибо
@blackoutworks
@blackoutworks 5 жыл бұрын
Спасибо. Планируешь продолжать? Интересно про асинхронность с редаксом (thunk/saga) и совмещение редакса с роутером.
@saskirakosyan5268
@saskirakosyan5268 4 жыл бұрын
the best video about redux, good explanation))
@chillchill5254
@chillchill5254 2 жыл бұрын
Спасибо большое, все очень доходчиво!
@igrman
@igrman 4 жыл бұрын
Спасибо большое. Классный ролик!
@user-tq3ip9iu9x
@user-tq3ip9iu9x 5 жыл бұрын
Легко и понятно объяснил!
@dobrinyanicitich7514
@dobrinyanicitich7514 5 жыл бұрын
Очень доходчиво, спасибо =)
@yuriyfedechko
@yuriyfedechko 4 жыл бұрын
Спасибо!! самым понятным языком показал!)
@artemviliutich8801
@artemviliutich8801 5 жыл бұрын
очень круто!!! продолжайте
@yaolegoleynik
@yaolegoleynik 5 жыл бұрын
Спасибо было бы круто посмотреть видеоурок по созданию интернет магазина или другого сайта на react/redux
@alagunoff
@alagunoff 4 жыл бұрын
Огромное спасибо!
@Nikitosss91
@Nikitosss91 4 жыл бұрын
Норм традиция, раз в год видос по редаксу)) Ждем продолжение в 2к20
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
Следующий видос будет не про редакс))
@Nikitosss91
@Nikitosss91 4 жыл бұрын
@@ecroFeGushKa расскажи по каким ресурсам учил реакт-редакс, а то от обилия видосов, курсов и статей аж тошнит, не получается на чем то сконцентрироваться... Спасибо!-)
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
@@Nikitosss91 redux.js.org/ react-redux.js.org/
@Nikitosss91
@Nikitosss91 4 жыл бұрын
@@ecroFeGushKa спасибо тебе, добрый человек. удачи по жизни)
@Mr-Xxx228
@Mr-Xxx228 5 жыл бұрын
Лучший!)
@user-ej2oe4fu1b
@user-ej2oe4fu1b 5 жыл бұрын
Спасибо! В первой части звук был лучше.
@Stan9326
@Stan9326 5 жыл бұрын
Супер!
@StreeTraceuresvideos
@StreeTraceuresvideos 5 жыл бұрын
Very Helpful video :)
@RomanKaras77
@RomanKaras77 5 жыл бұрын
Отличное видео! Но есть один нюанс, Вы в корне папки store создали файл actions.js. Он походу лишний в данном примере.
@OrangeBox33
@OrangeBox33 4 жыл бұрын
Спасибо!
@StudioWebDev
@StudioWebDev 4 жыл бұрын
Отличный пример! Лайк и подписка) только можно было не биндить в конструкторе ф-ции, а использовать arrow function и еще не понятно из видео, что ты написал в общий actions (store/actions) ?
@enjoymtx
@enjoymtx 3 жыл бұрын
Очень качественный контент. Получше того, что у меня были в платных курсах на эту тему. Подскажи пожалуйста, как в VSC сделать такое же отображение папок и файлов, без стандартных стрелочек?
@cybersystem5137
@cybersystem5137 4 жыл бұрын
Первый раз вижу такое описание функций! Но в любом случае, имхо, короче, проще и понятнее просто использовать стрелочные функции, чем городить непонятный огород с конструктором!
@userJakov
@userJakov 5 жыл бұрын
Я думал недождемся)))
@dcstrong8876
@dcstrong8876 4 жыл бұрын
Го уроки вообщем про реакт как на нем правильно строить преложения. Возможно что-то с Mongoose, MongoDB, React, Redux, Express. Какий нибудь урок на час. Как сделать авторизацию пользователей с сессией и все такое. Мало таких уроков , в основном по всему инету приходится по кусочкам собирать, что бы понять как и что делать
@zoojs
@zoojs 5 жыл бұрын
Исходники, пожалуйста!!!
@axblue2947
@axblue2947 5 жыл бұрын
Учу реакт, открыл документацию, посмотрел пару роликов, написал туду лист и думаю - бля, круто, удобно и не особо сложно. Затем почитал что редакс это мастхэф для реакт, теперь смотрю этот ролик и чет ни черта не въезжаю. Принцип понимаю вроде как, но столько копипаста надо делать и т.д., какт жоска дается пока... Буду ломать голову дальше. Автор вроде все четко говорит, но дается сложно. Спасибо.
@WolfzPain
@WolfzPain 5 жыл бұрын
в целом этот редакс какой-то перегруженый копипастой, которую можно было под капот скрыть
@viktor8670
@viktor8670 4 жыл бұрын
@@WolfzPain я думал, что только у меня такое ощущение после опыта работы c vue + vuex, где все гораздо проще, все аккуратно скрыто под капотом
@lomeat
@lomeat 5 жыл бұрын
Добавляй все видео в плейлист, тогда ютуб следующим видео будет включать не рекомендованное, а следующее из плейлиста. И не придется оставлять ссылки на видео.
@ivanPolozov148
@ivanPolozov148 3 жыл бұрын
Подписался на канал, жду новых видосов
@elnasurov6742
@elnasurov6742 5 жыл бұрын
Подскажите, пожалуйста, как называется этот плагин реакте.. Никак не могу найти..
@dimitirpopovich4394
@dimitirpopovich4394 4 жыл бұрын
Спасибо за отличное объяснение, но остался вопрос. Какая роль корневого файла actions.js?
@Polite_person_
@Polite_person_ 4 жыл бұрын
Я в другом туториале видел что экшн-криэйторы и экшены разносят по разным файлам, наверное как раз в корневой экшн заносят только константы, но на видео он видимо забыл это сделать, я думаю что он появится рано или поздно в комментах и прояснит ситуацию = )
@SergeyBaranov_ru
@SergeyBaranov_ru 4 жыл бұрын
Спасибо большое за понятный и логично структурированный урок! Есть вопрос про использование CombineReductors при дальнейшем разбиении на компоненты - как быть при увеличении уровня вложенности. Объясню на примере: если например в RegistrationComponent добавляем вложенный компонент, редуктор для него нужно добавлять в combineReductors компонента Registration или существующий combineReductors на самом верхнем уровне? Спасибо!
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
Можно "стакать" combineReducers и класть их друг в друга, с этим нет проблем
@callpack96
@callpack96 3 жыл бұрын
АУФ
@filcondrat
@filcondrat 5 жыл бұрын
ждем сагу
@eugenegavrilov2618
@eugenegavrilov2618 5 жыл бұрын
Разве удобно масштабировать приложение, когда части одного модуля лежат в кучи разных папок? Так же не удобно переносит что-либо в другой проект, когда приходится пройтись по десятку папкок чтобы собрать модуль воедино. Тоже самое касается и удаления.
@lomeat
@lomeat 5 жыл бұрын
пока не смотрел, че он там делает. Но я так понимаю, что делит components и containers? Если нет, то как совместить reducers и actions? Например тот же todolist, где будут экшоны (addTodo, updateTodo, removeTodo), но использоваться будут в разных 2 компонентах? Тут уже не разделить, или просто рендерить todo внутри todolist, но это некрасиво и в итоге файл будет срок на 1000
@andreykostyuchenko3239
@andreykostyuchenko3239 4 жыл бұрын
Видео супер, но почему при использовании реакта и редакса столько бойлерплейта(
@StreeTraceuresvideos
@StreeTraceuresvideos 5 жыл бұрын
Bro sdelai video kak pisat polnacenoye sap sredux :)
@amatol2100
@amatol2100 3 жыл бұрын
Вот я недавно начал изучать react. Поэтому за вопрос не обессудьте. ) Зачем нужен redux? В смысле, зачем нужен глобальный state? Разве мы не можем просто создать глобальную переменную и туда что-то записать? Я чего-то ещё не понимаю?
@oOIMAXIOo
@oOIMAXIOo 4 жыл бұрын
Конечно это все круто, а что делать если у нас вот такая ситация store => reducer и его надо разбить на еще новые редюсеры, и как получается сделать дочерний combineReducers?
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
Chihayafuru ну, внутри редюсера у тебя будет свич-кейс, для разных action type. можно под каждый action type свой редюсера написать и тупо передать в него текущий стейт и payload. это самый простой вариант. вариант посложнее: в объекте, который передается в combineReducers, в одно из желаемых полей положить не редюсер, а ещё раз вызвать combineReducers
@Kra6on
@Kra6on 5 жыл бұрын
Подскажи плз, как правильно записать в стор значения, которые мы получаем от запроса к API?
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Создать экшен, который кладет нужные данные в стор; запрос к API запустить внутри redux-thunk или redux-saga (они были созданы для того, чтобы держать в себе стороннюю логику) и там же дернуть этот созданный экшен
@Kra6on
@Kra6on 5 жыл бұрын
@@ecroFeGushKa окей, спасибо, пошел тогда искать что такое saga и thunk:)
@Kra6on
@Kra6on 5 жыл бұрын
@@ecroFeGushKa есть еще один вопрос!) Если у меня есть, допустим, 2 редьюсера(как тут , на видео), то когда я в один из них буду посылать экшен - то во втором редьюсере же тоже могу посмотреть, что пришло? просто мы с помощью switch-case используем только то, что нам нужно для конкретного редьюсера?
@Nikitosss91
@Nikitosss91 4 жыл бұрын
.а что за тема вс кода?
@Kra6on
@Kra6on 5 жыл бұрын
А где лучше записывать PropTypes? в Контейнерах описывать для всех или уже внутри, в компонентах?
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Лучше использовать TypeScript :) Ну, а PropTypes - в компонентах, т.к. все-таки пропсы характеризуют, в первую очередь, функциональность компонента, а контейнер - это просто обертка.
@Kra6on
@Kra6on 5 жыл бұрын
@@ecroFeGushKa спасибо!)ждем новых видео!
@elnasurov6742
@elnasurov6742 5 жыл бұрын
@@ecroFeGushKa подскажи, что за плагин у тебя для реакта стоит, плез
@aleksandrzhilkin4800
@aleksandrzhilkin4800 Жыл бұрын
Не понял, почему бы вместо AuthContainer не использовать сразу Auth: export default connect(mapStateToProps, mapDispatchToProps)(Auth); вместо export default connect(mapStateToProps, mapDispatchToProps)(AuthContainer);
@snd5543
@snd5543 5 жыл бұрын
Круто) только вот вопрос, если у нас будет гигантский стор, не лучше ли хранить onChange в стэйте компонента, а в стор отправлять только по сабмиту? На сколько это критично в плане быстродействия?
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Само собой, в 90% случаев нет смысла класть данные из onchange сразу в стор. Про производительность - сложно сказать, она слабо зависит от размеров стора
@ivanpoberezhniuk9694
@ivanpoberezhniuk9694 5 жыл бұрын
Метод debounce из lodash.js Вам поможет
@ROX2
@ROX2 4 жыл бұрын
не показано как из одного компонента через редакс вытащить стейт другого
@mrGenius996
@mrGenius996 5 жыл бұрын
Держи царский лайк и подписку!
@user-my2yg4tb8o
@user-my2yg4tb8o 5 жыл бұрын
Воу что со звуком? До этого лучше было
@VSsoviet
@VSsoviet 4 жыл бұрын
какая же клавиатура у тебя ахуенная, у меня механника не так приятно звучит даже))
@ecroFeGushKa
@ecroFeGushKa 4 жыл бұрын
NodeJS Developer Ненавистная всеми Макбуковская "бабочка"))
@VSsoviet
@VSsoviet 4 жыл бұрын
@@ecroFeGushKa хз хз мне прям в кайф с каждого отклика и да, спасибо за уроки)
@sergeyzaycev3733
@sergeyzaycev3733 3 жыл бұрын
Вот это как раз для больших приложений не подходит. Если у вас действительно большое приложение, вы будете тупо весь день копипастить одинаковые файлы...
@Kolabrod
@Kolabrod 4 жыл бұрын
Исходники ? не не слышал
@andriiukraine6697
@andriiukraine6697 5 жыл бұрын
Хм... А в реальной жизни вообще имеет смысл сторить поле при каждом изменении в глобал стейт. Вот тебе жизненный кейс. Форма с 256 полями. Разбить ее на меньшие не выходит из-за требований бизнеса. Представь себе кол-во экшенов которые нужно прописать.
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Ну, достаточно сделать какой-то один дженерик экшен и в качестве payload передавать айдишник\ключ\название поле и класть его значение в стор по этому полученному ключу
@HPMuwa
@HPMuwa 4 жыл бұрын
Мне не понравилось, что в видео у меня полосы слева и справа и сверху и снизу. Мой экран 16:10
@anatoliitytarenko4926
@anatoliitytarenko4926 4 жыл бұрын
Гду бл**ь ссылки на код?!! А так урок хороший , но за ссылки дис
@unlike777
@unlike777 5 жыл бұрын
Ребята учите Vue, серьезно, не нужно вам все это....
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
Мы тут в первую очередь про Редакс говорим, причем тут Вуе) Вуе не панацея и в нем также не решена проблема управления данными (как, собственно, и везде)
@solovladik
@solovladik 5 жыл бұрын
@@ecroFeGushKa о какой проблеме речь? можно источник, чтобы разобраться в этом вопросе по-лучше?
@ecroFeGushKa
@ecroFeGushKa 5 жыл бұрын
@@solovladik blog.logrocket.com/why-use-redux-reasons-with-clear-examples-d21bffd5835, раздел "Why you need a state management tool". redux.js.org/introduction/motivation
Redux не нужен. GraphQL и Apollo Client.
27:48
knowcity
Рет қаралды 52 М.
A clash of kindness and indifference #shorts
00:17
Fabiosa Best Lifehacks
Рет қаралды 99 МЛН
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 28 МЛН
🤔Какой Орган самый длинный ? #shorts
00:42
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 3 М.
1 - Уроки KnockoutJS. Введение.
22:08
knowcity
Рет қаралды 10 М.
React.js - Советы от профи!
48:09
loftblog
Рет қаралды 51 М.
A clash of kindness and indifference #shorts
00:17
Fabiosa Best Lifehacks
Рет қаралды 99 МЛН