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

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024
  • Предыдущее видео: • React и Redux 2. Подкл...
    Redux: redux.js.org/
    Flux: facebook.githu...
    React: facebook.githu...

ความคิดเห็น • 96

  • @alexovs6226
    @alexovs6226 5 ปีที่แล้ว +97

    Нужен четвертый урок про redux-saga) Я думаю меня большинство поддержит (лайками и не только)

    • @davronsherbaev9133
      @davronsherbaev9133 5 ปีที่แล้ว

      согласен

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว +3

      th-cam.com/video/DG9rXV1kI0o/w-d-xo.html

    • @cybersystem5137
      @cybersystem5137 4 ปีที่แล้ว +1

      Полтора года назад я бы тоже поддержал. Да только вот спустя это время я как-то перестал понимать накой черт эта сага вообще, как и сам редакс! Глобальный стор это круто, конечно, да только в большинстве случаев он не нужен.

    • @ArturZalewski
      @ArturZalewski 3 ปีที่แล้ว

      @@cybersystem5137 Понятно, но что делать, если проект окажется не самым свежим. Любому джуну, хотелось бы понимать и иметь возможность минимально поддерживать код. Классы, Редакс, возможно, на новых проектах не имеет смысла поддерживать, но есть куча старых, которые никто ради меня, такого ленивого переписывать не станет )))

    • @cybersystem5137
      @cybersystem5137 3 ปีที่แล้ว

      @@ArturZalewski удивлю, но так всегда и везде происходит. А еще происходит так, что если ты понемногу отрефакторишь код и перепишешь его на более современные вещи (аккуратно, конечно), премию не дадут, но и возражать не будут. А работать тебе будет проще.

  • @yevheniirachkovan8101
    @yevheniirachkovan8101 5 ปีที่แล้ว +32

    Спасибо за хороший и понятный урок) не зря год ждал

  • @serhii.chernenko
    @serhii.chernenko 4 ปีที่แล้ว +2

    первое из многих видео, благодаря которому наконец-то понял о связке и правильной структуре и что для чего. спасибо

  • @necelentano
    @necelentano 5 ปีที่แล้ว +21

    Спасибо за отличный контент по Редаксу. Жаль, что выходит раз в году)

  • @ArturZalewski
    @ArturZalewski 3 ปีที่แล้ว

    Концентрированно, полезно и ёмко. Несколько раз пересмотреть, один раз повторить и можно сказать, что в принципе, эта концепция усвоена. Спасибо за Ваш труд!

  • @alekseytsibulnikov3447
    @alekseytsibulnikov3447 5 ปีที่แล้ว +16

    Прекрасный скринкаст. Спасибо! Все ясно и понятно.
    P.s. Было бы хорошо если бы ты выложил конечный код на гит.

  • @rib0385
    @rib0385 5 ปีที่แล้ว +5

    спасибо, благодаря уроку начал понимать оф документацию, лучшие уроки, которые видел

  • @SerhiiPylypenko-g9b
    @SerhiiPylypenko-g9b 5 ปีที่แล้ว +1

    Сегодня с часу дня сидел за технической документацией Redux, что-то писал, вроде как получалось, но в итоге получилась какая-то ..., посмотрел Ваш урок и все заработало! Спасибо большое! Желаю успехов и не оставляйте это дело, Вы делаете огромное добро другим людям

  • @andreyq9179
    @andreyq9179 5 ปีที่แล้ว +4

    АВТОР у тебя талант! Записывай пожалуйста уроки чаще. Людям нравится!

  • @nazarposhta
    @nazarposhta 5 ปีที่แล้ว +1

    Отлично! Все понял и начал использовать redux в нашем проекте. Спасибо.

  • @Stan9326
    @Stan9326 5 ปีที่แล้ว +8

    У тебя талант! Продолжай)

  • @homovespertilio
    @homovespertilio 5 ปีที่แล้ว

    Офигенный туториал! Я штук 30 перебрал и ютубовских и текстовых, только в этом смог четко понять что происходит!

  • @Polite_person_
    @Polite_person_ 4 ปีที่แล้ว

    Блин. Я 4 туториала по редаксу посмотрел и окончательно разобрался только после просмотра данного видео. Спасибо! Лайк и подписка.

  • @saskirakosyan5268
    @saskirakosyan5268 4 ปีที่แล้ว +2

    the best video about redux, good explanation))

  • @chillchill5254
    @chillchill5254 2 ปีที่แล้ว

    Спасибо большое, все очень доходчиво!

  • @blackoutworks
    @blackoutworks 5 ปีที่แล้ว +12

    Спасибо. Планируешь продолжать? Интересно про асинхронность с редаксом (thunk/saga) и совмещение редакса с роутером.

  • @enjoymtx
    @enjoymtx 3 ปีที่แล้ว

    Очень качественный контент. Получше того, что у меня были в платных курсах на эту тему.
    Подскажи пожалуйста, как в VSC сделать такое же отображение папок и файлов, без стандартных стрелочек?

  • @Kreator321RG
    @Kreator321RG 5 ปีที่แล้ว +4

    отличный урок! спасибо

  • @amatol2100
    @amatol2100 4 ปีที่แล้ว

    Вот я недавно начал изучать react. Поэтому за вопрос не обессудьте. )
    Зачем нужен redux? В смысле, зачем нужен глобальный state? Разве мы не можем просто создать глобальную переменную и туда что-то записать?
    Я чего-то ещё не понимаю?

  • @Nikitosss91
    @Nikitosss91 4 ปีที่แล้ว +1

    Норм традиция, раз в год видос по редаксу)) Ждем продолжение в 2к20

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว

      Следующий видос будет не про редакс))

    • @Nikitosss91
      @Nikitosss91 4 ปีที่แล้ว

      @@ecroFeGushKa расскажи по каким ресурсам учил реакт-редакс, а то от обилия видосов, курсов и статей аж тошнит, не получается на чем то сконцентрироваться... Спасибо!-)

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว

      @@Nikitosss91 redux.js.org/ react-redux.js.org/

    • @Nikitosss91
      @Nikitosss91 4 ปีที่แล้ว

      @@ecroFeGushKa спасибо тебе, добрый человек. удачи по жизни)

  • @yuriyfedechko
    @yuriyfedechko 4 ปีที่แล้ว

    Спасибо!! самым понятным языком показал!)

  • @igrman
    @igrman 4 ปีที่แล้ว

    Спасибо большое. Классный ролик!

  • @SergeyBaranov_ru
    @SergeyBaranov_ru 4 ปีที่แล้ว

    Спасибо большое за понятный и логично структурированный урок!
    Есть вопрос про использование CombineReductors при дальнейшем разбиении на компоненты - как быть при увеличении уровня вложенности.
    Объясню на примере: если например в RegistrationComponent добавляем вложенный компонент, редуктор для него нужно добавлять в combineReductors компонента Registration или существующий combineReductors на самом верхнем уровне?
    Спасибо!

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว +1

      Можно "стакать" combineReducers и класть их друг в друга, с этим нет проблем

  • @yaolegoleynik
    @yaolegoleynik 5 ปีที่แล้ว +2

    Спасибо было бы круто посмотреть видеоурок по созданию интернет магазина или другого сайта на react/redux

  • @StudioWebDev
    @StudioWebDev 4 ปีที่แล้ว

    Отличный пример!
    Лайк и подписка)
    только можно было не биндить в конструкторе ф-ции, а использовать arrow function
    и еще не понятно из видео, что ты написал в общий actions (store/actions) ?

  • @RomanKaras77
    @RomanKaras77 5 ปีที่แล้ว +2

    Отличное видео! Но есть один нюанс, Вы в корне папки store создали файл actions.js. Он походу лишний в данном примере.

  • @cybersystem5137
    @cybersystem5137 4 ปีที่แล้ว

    Первый раз вижу такое описание функций! Но в любом случае, имхо, короче, проще и понятнее просто использовать стрелочные функции, чем городить непонятный огород с конструктором!

  • @АлександрДыкса
    @АлександрДыкса 5 ปีที่แล้ว

    Легко и понятно объяснил!

  • @ГефестМимант
    @ГефестМимант 5 ปีที่แล้ว

    Спасибо!
    В первой части звук был лучше.

  • @axblue2947
    @axblue2947 5 ปีที่แล้ว +1

    Учу реакт, открыл документацию, посмотрел пару роликов, написал туду лист и думаю - бля, круто, удобно и не особо сложно. Затем почитал что редакс это мастхэф для реакт, теперь смотрю этот ролик и чет ни черта не въезжаю. Принцип понимаю вроде как, но столько копипаста надо делать и т.д., какт жоска дается пока... Буду ломать голову дальше. Автор вроде все четко говорит, но дается сложно. Спасибо.

    • @WolfzPain
      @WolfzPain 5 ปีที่แล้ว

      в целом этот редакс какой-то перегруженый копипастой, которую можно было под капот скрыть

    • @viktor8670
      @viktor8670 5 ปีที่แล้ว

      @@WolfzPain я думал, что только у меня такое ощущение после опыта работы c vue + vuex, где все гораздо проще, все аккуратно скрыто под капотом

  • @artemviliutich8801
    @artemviliutich8801 5 ปีที่แล้ว

    очень круто!!! продолжайте

  • @dcstrong8876
    @dcstrong8876 4 ปีที่แล้ว

    Го уроки вообщем про реакт как на нем правильно строить преложения. Возможно что-то с Mongoose, MongoDB, React, Redux, Express. Какий нибудь урок на час. Как сделать авторизацию пользователей с сессией и все такое. Мало таких уроков , в основном по всему инету приходится по кусочкам собирать, что бы понять как и что делать

  • @elnasurov6742
    @elnasurov6742 5 ปีที่แล้ว +1

    Подскажите, пожалуйста, как называется этот плагин реакте..
    Никак не могу найти..

  • @aleksandrzhilkin4800
    @aleksandrzhilkin4800 ปีที่แล้ว

    Не понял, почему бы вместо AuthContainer не использовать сразу Auth:
    export default connect(mapStateToProps, mapDispatchToProps)(Auth);
    вместо
    export default connect(mapStateToProps, mapDispatchToProps)(AuthContainer);

  • @dimitirpopovich4394
    @dimitirpopovich4394 5 ปีที่แล้ว

    Спасибо за отличное объяснение, но остался вопрос. Какая роль корневого файла actions.js?

    • @Polite_person_
      @Polite_person_ 4 ปีที่แล้ว +1

      Я в другом туториале видел что экшн-криэйторы и экшены разносят по разным файлам, наверное как раз в корневой экшн заносят только константы, но на видео он видимо забыл это сделать, я думаю что он появится рано или поздно в комментах и прояснит ситуацию = )

  • @alagunoff
    @alagunoff 4 ปีที่แล้ว

    Огромное спасибо!

  • @eugenegavrilov2618
    @eugenegavrilov2618 5 ปีที่แล้ว +1

    Разве удобно масштабировать приложение, когда части одного модуля лежат в кучи разных папок?
    Так же не удобно переносит что-либо в другой проект, когда приходится пройтись по десятку папкок чтобы собрать модуль воедино.
    Тоже самое касается и удаления.

    • @lomeat
      @lomeat 5 ปีที่แล้ว

      пока не смотрел, че он там делает. Но я так понимаю, что делит components и containers? Если нет, то как совместить reducers и actions? Например тот же todolist, где будут экшоны (addTodo, updateTodo, removeTodo), но использоваться будут в разных 2 компонентах? Тут уже не разделить, или просто рендерить todo внутри todolist, но это некрасиво и в итоге файл будет срок на 1000

  • @andreykostyuchenko3239
    @andreykostyuchenko3239 4 ปีที่แล้ว

    Видео супер, но почему при использовании реакта и редакса столько бойлерплейта(

  • @lomeat
    @lomeat 5 ปีที่แล้ว +2

    Добавляй все видео в плейлист, тогда ютуб следующим видео будет включать не рекомендованное, а следующее из плейлиста. И не придется оставлять ссылки на видео.

  • @Mr-XaXa
    @Mr-XaXa 5 ปีที่แล้ว

    Лучший!)

  • @oOIMAXIOo
    @oOIMAXIOo 4 ปีที่แล้ว

    Конечно это все круто, а что делать если у нас вот такая ситация store => reducer и его надо разбить на еще новые редюсеры, и как получается сделать дочерний combineReducers?

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว

      Chihayafuru ну, внутри редюсера у тебя будет свич-кейс, для разных action type. можно под каждый action type свой редюсера написать и тупо передать в него текущий стейт и payload. это самый простой вариант. вариант посложнее: в объекте, который передается в combineReducers, в одно из желаемых полей положить не редюсер, а ещё раз вызвать combineReducers

  • @Kra6on
    @Kra6on 5 ปีที่แล้ว

    А где лучше записывать PropTypes? в Контейнерах описывать для всех или уже внутри, в компонентах?

    • @ecroFeGushKa
      @ecroFeGushKa  5 ปีที่แล้ว

      Лучше использовать TypeScript :) Ну, а PropTypes - в компонентах, т.к. все-таки пропсы характеризуют, в первую очередь, функциональность компонента, а контейнер - это просто обертка.

    • @Kra6on
      @Kra6on 5 ปีที่แล้ว

      @@ecroFeGushKa спасибо!)ждем новых видео!

    • @elnasurov6742
      @elnasurov6742 5 ปีที่แล้ว

      @@ecroFeGushKa подскажи, что за плагин у тебя для реакта стоит, плез

  • @ROX2
    @ROX2 4 ปีที่แล้ว

    не показано как из одного компонента через редакс вытащить стейт другого

  • @StreeTraceuresvideos
    @StreeTraceuresvideos 5 ปีที่แล้ว

    Very Helpful video :)

  • @Stan9326
    @Stan9326 5 ปีที่แล้ว

    Супер!

  • @ivanPolozov148
    @ivanPolozov148 4 ปีที่แล้ว

    Подписался на канал, жду новых видосов

  • @userJakov
    @userJakov 5 ปีที่แล้ว +1

    Я думал недождемся)))

  • @zoojs
    @zoojs 5 ปีที่แล้ว +3

    Исходники, пожалуйста!!!

  • @OrangeBox33
    @OrangeBox33 5 ปีที่แล้ว

    Спасибо!

  • @snd5543
    @snd5543 5 ปีที่แล้ว

    Круто) только вот вопрос, если у нас будет гигантский стор, не лучше ли хранить onChange в стэйте компонента, а в стор отправлять только по сабмиту? На сколько это критично в плане быстродействия?

    • @ecroFeGushKa
      @ecroFeGushKa  5 ปีที่แล้ว +1

      Само собой, в 90% случаев нет смысла класть данные из onchange сразу в стор. Про производительность - сложно сказать, она слабо зависит от размеров стора

    • @ivanpoberezhniuk9694
      @ivanpoberezhniuk9694 5 ปีที่แล้ว

      Метод debounce из lodash.js Вам поможет

  • @Nikitosss91
    @Nikitosss91 4 ปีที่แล้ว

    .а что за тема вс кода?

  • @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 используем только то, что нам нужно для конкретного редьюсера?

  • @sergeyzaycev3733
    @sergeyzaycev3733 3 ปีที่แล้ว

    Вот это как раз для больших приложений не подходит. Если у вас действительно большое приложение, вы будете тупо весь день копипастить одинаковые файлы...

  • @callpack96
    @callpack96 4 ปีที่แล้ว

    АУФ

  • @VSsoviet
    @VSsoviet 4 ปีที่แล้ว

    какая же клавиатура у тебя ахуенная, у меня механника не так приятно звучит даже))

    • @ecroFeGushKa
      @ecroFeGushKa  4 ปีที่แล้ว

      NodeJS Developer Ненавистная всеми Макбуковская "бабочка"))

    • @VSsoviet
      @VSsoviet 4 ปีที่แล้ว

      @@ecroFeGushKa хз хз мне прям в кайф с каждого отклика
      и да, спасибо за уроки)

  • @StreeTraceuresvideos
    @StreeTraceuresvideos 5 ปีที่แล้ว

    Bro sdelai video kak pisat polnacenoye sap sredux :)

  • @filcondrat
    @filcondrat 5 ปีที่แล้ว

    ждем сагу

  • @РусланВалимухаметов-э9к
    @РусланВалимухаметов-э9к 5 ปีที่แล้ว

    Воу что со звуком? До этого лучше было

  • @Kolabrod
    @Kolabrod 4 ปีที่แล้ว

    Исходники ? не не слышал

  • @mrGenius996
    @mrGenius996 5 ปีที่แล้ว

    Держи царский лайк и подписку!

  • @andriiukraine6697
    @andriiukraine6697 5 ปีที่แล้ว

    Хм... А в реальной жизни вообще имеет смысл сторить поле при каждом изменении в глобал стейт.
    Вот тебе жизненный кейс. Форма с 256 полями. Разбить ее на меньшие не выходит из-за требований бизнеса.
    Представь себе кол-во экшенов которые нужно прописать.

    • @ecroFeGushKa
      @ecroFeGushKa  5 ปีที่แล้ว +4

      Ну, достаточно сделать какой-то один дженерик экшен и в качестве payload передавать айдишник\ключ\название поле и класть его значение в стор по этому полученному ключу

  • @HPMuwa
    @HPMuwa 4 ปีที่แล้ว

    Мне не понравилось, что в видео у меня полосы слева и справа и сверху и снизу.
    Мой экран 16:10

  • @anatoliitytarenko4926
    @anatoliitytarenko4926 5 ปีที่แล้ว

    Гду бл**ь ссылки на код?!! А так урок хороший , но за ссылки дис

  • @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

  • @dobrinyanicitich7514
    @dobrinyanicitich7514 5 ปีที่แล้ว

    Очень доходчиво, спасибо =)