Асинхронная работа с Redux Toolkit и createAsyncThunk

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024

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

  • @mikhailmikhailovich1037
    @mikhailmikhailovich1037 ปีที่แล้ว +37

    У автора есть талант обучать других людей. Информация подается очень корректно и доступно. Большое спасибо!

  • @vladprodan7010
    @vladprodan7010 3 ปีที่แล้ว +30

    Крутое видео! Ты крут! Давай RTK Query

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

      Да RTK Query нужен

    • @anazkomult
      @anazkomult 3 ปีที่แล้ว +1

      Да, было бы чудесно. Михаил, очень просим!)

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

      Хотим RTK Query

  • @den_ph
    @den_ph 2 ปีที่แล้ว +35

    Благодарю вас,Михаил, за понятное и подробное объяснение! Очень нравится манера подачи материала.

    • @СтройКонсалт
      @СтройКонсалт ปีที่แล้ว

      Присоединяюсь! Грамотная речь, отсутствие паразитов и дефектов речи, глубокое понимание автором темы и спокойная подача! Большая благодарность!

  • @lightinthedark5708
    @lightinthedark5708 3 ปีที่แล้ว +22

    Прекрасная речь и очень доходчивое объяснение. Спасибо, Михаил!

  • @ИванВалучев-э5р
    @ИванВалучев-э5р ปีที่แล้ว +8

    Одно удовольствие, учится по вашим роликам, большое спасибо!)

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

    Как раз из-за таких добрых людей как ты меня ещё не уволили)

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

    Чувак спасибо тебе за такой качественный контент. Не затянуто и не коротко прям идеально. Не буду указать пальцем, но есть некоторые которые пробегают быстро что то рассказывают, не успеваешь за ними и ничего не понятно.. А тут все идеально)

  • @anazkomult
    @anazkomult 3 ปีที่แล้ว +7

    Отличный урок по Redux Toolkit и createAsyncThunk.
    Спасибо, Михаил!

  • @ИванИванов-л7ю
    @ИванИванов-л7ю 5 หลายเดือนก่อน

    Михаил огромная благодарность вам за это видео в частности и за весь обучающий контент который вы делаете!

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

    это лучший видеоуроки по redux-toolkit и createAsyncThunk

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

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

  • @true227
    @true227 ปีที่แล้ว +14

    Михаил, спасибо за видео. Прошло два года с момента выхода видео и теперь при записи через объектную нотацию в поле extraReducers, т.е в таком формате [fetchCards.pending]: (state, action) вылезает предупрждение в консоли о том, что The object notation for `createSlice.extraReducers` is deprecated . Корректная запись теперь через билдер extraReducers: (builder) => {
    builder.addCase(fetchCards.pending, (state) => {
    state.status = "loading";
    }); Только вот в официальной доке указаны оба этих способа и про депришиайтед первого ни слова. Лучи поноса им

    • @xdayx53
      @xdayx53 7 หลายเดือนก่อน

      да-да

  • @keymsr
    @keymsr 2 ปีที่แล้ว +1

    Спасибище! Долго не мог разобраться, а тут всё просто и наглядно оказалось.

  • @soln_sce3088
    @soln_sce3088 10 หลายเดือนก่อน

    Спасибо огромное! Самый лучший туториал по этой теме из всех, что я видела.

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

    Все четко, ясно, подробно. Разбито на понятные этапы, до этого смотрел первый ролик про тулкит. Спасибо! Всех благ!

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

    Спасибо. Разбирал все сам по документации, а с твоей помощью закрепил и все улеглось в голове)

  • @bobby_jones
    @bobby_jones 3 ปีที่แล้ว +1

    Очень благодарен за это видео. Помогло сильно. Не мог сам разобраться в Redux thunk в Redux Toolkit

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

    Спасибо автору за отличный обучающий материал. Доступно, понятно, без "воды". Удачи Вам.

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

    Спасибо за инициативу во второй части ролика и то что ты его продлил. Очень полезная инфа! Спасибо. Продолжай в том же духе 👍

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

    Редко встречаю, когда видео лучше мануала.
    Спасибо!

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

    Михаил, видео действительно получилось полезным! Посмотрела, так как на проекте используется redux toolkit, а я только redux использовала.
    Особенно отмечу дикцию, вас приятно слушать, четко и по делу рассказываете, видео просто находка

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

    Спасибо за легкий и понятный рассказ

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

    Спасибо ! Приятный голос и четкость мыслей . Лайк и Подписка !

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

    Одним словом супер 😊. Простой, понятный, подробный.

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

    Спасибо, прочитал быстрый старт официальный для тулкит, ничего не запустилось и очень непонятно, а тут просто офигенно, спасибо

  • @olegnesterov9957
    @olegnesterov9957 3 ปีที่แล้ว +1

    Огромное спасибо за подробное объяснение работы с разными типами запросов

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

    да реально всё получается. Спасибо

  • @НиколайХаритонов-й3н
    @НиколайХаритонов-й3н 3 ปีที่แล้ว +1

    Видео огонь, тема очень хорошо раскрыта!

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

    Большое спасибо! Люблю ваши видео, приятная и понятная подача

  • @akovalevv
    @akovalevv 2 ปีที่แล้ว +1

    Одни из лучших видео на ютубе. Спасибо большое. Очень нравится что по мимо отличной подачи, автор пишет все на современных технологиях. Очень много туториалов даже за 2021- 22 года до сих пор используют старый редакс, а не тулкит.

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

    САМОЕ ЛУЧШЕЕ НА ЮТУБЕ ПО РЕДАКС ТУЛКИТ! СПАСИБО ОГРОМНОЕ, С МЕНЯ ПОДПИСКА И ЛАЙКИ!

  • @СергейКузнецов-щ5я
    @СергейКузнецов-щ5я ปีที่แล้ว

    Михаил, сильно благодарю. Классный видос, классная подача, классный урок!!!

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

    Вот бы я раньше нашёл это видео, спасибо за труд!

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

    Спасибо Михаил! Надо будет в выходные посмотреть :)

  • @user-bt1rh9rt8j
    @user-bt1rh9rt8j 3 ปีที่แล้ว

    Спасибо!!! Очень ждал это видео после предыдущего про редакс

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

    Лайк! Подписка! Очень круто объяснено.

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

    Отлично, как раз на этой неделе понадобилось)

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

    Спасибо, в качестве благодарности напишу ключевые слова чтоб твой видос быстрее искали. redux redux toolkit react-redux createAsyncThunk

  • @НиколайСеливанов-и2в
    @НиколайСеливанов-и2в 2 ปีที่แล้ว

    Большое спасибо! Redux стал не так страшен :-) Отличное видео.

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

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

  • @АлександрВащекин-с3й
    @АлександрВащекин-с3й 2 ปีที่แล้ว

    Михаил, видео супер!!! Прекрасное объяснение

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

    Лайк, подписка, все уведомления !

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

    Очень приятный голос и приятная подача материала!

  • @Vlad-jp3co
    @Vlad-jp3co ปีที่แล้ว

    Спасибо за ваши старания, Михаил)

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

    Дай тебе бог здоровья!)

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

    спасибо, очень помогло! (сижу джуном 6 месяцев опыта на мидловской позиции, пытаюсь делать задачи в сроки)

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

    Спасибо за createAsyncThunk!

  • @Tech-m3o
    @Tech-m3o 9 หลายเดือนก่อน +2

    Сейчас я так понял используют такой синтаксис:
    extraReducers(builder) {
    builder.addCase(fetchGetTodos.fulfilled, (state, action) => {
    state.todos = action.payload;
    })
    }
    вместо:
    extraReducers: {
    [fetchGetTodos.fulfilled]: (state, action) => {
    state.todos = action.payload;
    }
    }

  • @Litaka1
    @Litaka1 9 หลายเดือนก่อน

    отличный урок!! Спасибо, на работе в проекте назрела необходимость в использовании редакса. Я слишком далеко зашла в пропсдрилинге и нужно было это исправлять пока не поздно. Помнила, что начинала разбираться в классическом редаксе и было все понятно, до момента типизации))) но делать-то надо, еще только 9 месяцев опыта и я одна единственная фронт-программист, все делаю сама) немного страшно было, но по первому вашему уроку, я разобралась+помог коммент про типизацию, все РАБОТАЕТ!!!!! Смотрю дальше

    • @minkostas7232
      @minkostas7232 8 หลายเดือนก่อน +1

      как это вы так устроились без знаний ?))

    • @Litaka1
      @Litaka1 8 หลายเดือนก่อน

      это не IT компания, основное направление деятельности производство, а мой маленький it отдел - стартап. В чем-то легче(в плане нет дедлайнов), так как стадия разработки только (нет клиентов)@@minkostas7232

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

    Спасибо! Полезный урок!

  • @АнатолийГорбов-о1ь
    @АнатолийГорбов-о1ь ปีที่แล้ว

    Михаил спасибо, отличное видео!

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

    Охренительно полезное видео.
    Спасибо, очень помогло.

  • @DmitryDolganov
    @DmitryDolganov 3 ปีที่แล้ว +1

    Михаил, салют!
    Благодарю!

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

      Обращайтесь :)

  • @ДмитроСіченко
    @ДмитроСіченко 2 ปีที่แล้ว

    Спасибо , видео было очень полезное , светлая тема, оказалась очень приятная для восприятия, размер шрифта отличный!!!

  • @КириллПетров-ш3н3к
    @КириллПетров-ш3н3к 3 ปีที่แล้ว

    Спасибо! Отлично помогло разобраться.

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

    Спасибо. Очень полезные видео, приятный голос и подача.Подписался😁

  • @warcraft.mp4889
    @warcraft.mp4889 5 หลายเดือนก่อน

    Вы просто прелесть

  • @АлексейФиленко-ф4к
    @АлексейФиленко-ф4к 2 ปีที่แล้ว

    Как всегда большое спасибо!)

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

    Очень крутое видео. Чётко, без воды. Продолжай в том же духе.

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

    Очень круто! Огромное спасибо!

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

    Спасибо за урок.

  • @МатвейМанько-ь6ч
    @МатвейМанько-ь6ч ปีที่แล้ว

    Спасибо за туториал!

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

    Many thanks to you, Michael.
    Was a great tutorial as the most of your content.

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

    Спасибо большое за видео!

  • @mr.zxzxzxz3816
    @mr.zxzxzxz3816 2 ปีที่แล้ว

    спасибо большое! топовые видосы

  • @Rostyslav-hv9un
    @Rostyslav-hv9un 2 ปีที่แล้ว

    Видео отличное, помогло мне понять принципы работы Toolkit. Но эта белая тема в VSCode)))))

  • @МихаилНиколаев-з9л
    @МихаилНиколаев-з9л 8 หลายเดือนก่อน +3

    новый вид записи extraReducers, все остальное как и было:
    extraReducers: (builder) => {
    builder
    .addCase(fetchUsers.pending, (state) => {
    state.status = "loading";
    state.error = null;
    })
    .addCase(fetchUsers.fulfilled, (state, action) => {
    state.users = action.payload;
    state.status = "resolved";
    state.error = null;
    })
    .addCase(fetchUsers.rejected, (state, action) => {});
    }

    • @Zadrot1080p
      @Zadrot1080p 6 หลายเดือนก่อน

      Вот еще варик
      extraReducers: (builder) => {
      builder
      .addCase(fetchTodos.pending, (state, action) => {
      state.status = 'loading';
      state.error = null;
      })
      .addCase(fetchTodos.fulfilled, (state, action) => {
      state.status = 'resolved';
      state.todos = action.payload;
      })
      .addCase(fetchTodos.rejected, (state, action) => {
      state.status = 'rejected';
      state.error = action.payload;
      })
      .addCase(deleteTodo.rejected, (state, action) => {
      state.status = 'rejected';
      state.error = action.payload;
      })
      .addCase(toggleStatus.rejected, (state, action) => {
      state.status = 'rejected';
      state.error = action.payload;
      })
      }

    • @brontytv4266
      @brontytv4266 3 หลายเดือนก่อน

      люблю тебя братишка

  • @xdayx53
    @xdayx53 7 หลายเดือนก่อน

    спасибо)

  • @ОлегФилатов-м6е
    @ОлегФилатов-м6е ปีที่แล้ว

    всё круто, спасибо

  • @dev-to-prod
    @dev-to-prod 2 ปีที่แล้ว

    Контент огонь! Лайк, подписка) More React content pls!)

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

    Круто, спасибо!

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

    лучший)

  • @artemlesnov4869
    @artemlesnov4869 3 ปีที่แล้ว +1

    Шикарный материал!!! Спасибо большое. хотел еще спросить о выносе логики из редюсеров в екстраредьюсеры и соединение нескольких слайсов для совместной реализации какой-то логики! было бы интересно посмотреть

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

    Отличное видео

  • @ВалерийПерелыгин-ъ3е
    @ВалерийПерелыгин-ъ3е 3 ปีที่แล้ว +1

    Привет, старик!! ) Вкратце словами интернет классика... Нихрена не понятно, но оооочень интересно! ))

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

      Какими судьбами, дружище? :)

  • @ГульзанаКаткелдиева-ъ4ь
    @ГульзанаКаткелдиева-ъ4ь 2 ปีที่แล้ว

    спасибо, все понятно

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

    Круто!!!

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

    Как можно это унифицировать? Не хочется для каждого запроса прописывать столько всего. Большое спасибо за очень доходчивое объяснение!

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

      Как и в обычном redux-thunk, rtk позволяет прокидывать для санков extra-параметр. Вместе с ним можно передать свою абстракцию для работы с crud-операциями, и внутри санка уже работать с ней, передавая нужные значения.

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

    толково 👍

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

    Спасибо!

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

    Thank you very mach)))

  • @АннаБояршинова-о3т
    @АннаБояршинова-о3т 2 ปีที่แล้ว

    Redux Toolkit. Thanks!

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

    Well explained 💯

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

    Очень люблю Ваши видео. Просьба - уменьшить разрешение экрана. С телефона ничего не видно, что в документации написано.

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

    Браво!!

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

    Лекция информативная и доходчивая - Спасибо! Установить стартовый проект не удалось ни Ярном (отсутствует файл лицензии) ни NPM (401 - нет аутентификации).

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

      Lock файл попробуйте удалить и запустить заново

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

      @@mishanepСпасибо, удаление yarn.lock помогло. npm install; npm fix --force; npm run - live-server поднялся!

  • @МаксФамильный-о4п
    @МаксФамильный-о4п 3 ปีที่แล้ว +1

    Спасибо большое за видео! все очень доступно и понятно, НО можно пожалуйста попросить Вас сделать примерно этот же пример только в классовом компоненте. Решил для себя разобраться, но если честно это стало большой проблемой. Я и другие зрители думаю скажут Вам спасибо за это.
    P.S. лайк поставил и подписался)

    • @МаксФамильный-о4п
      @МаксФамильный-о4п 3 ปีที่แล้ว +1

      можно даже не видео отдельное я на codepen или куда еще залить.

    • @mishanep
      @mishanep  3 ปีที่แล้ว +1

      Приветствую.
      Видео точно не будет :)
      В чем конкретно возникла сложность?
      Я классовые компоненты использую только для error контейнеров (потому что по-другому нельзя). В остальном всё на функциях, сам Реакт нам это рекомендует. В классах, понятно, не действуют хуки. А подключение к Редаксу происходит через пень колоду, то есть через метод connect из react-redux, который добавляет в пропсы значения из хранилища и конкретные экшны.

    • @МаксФамильный-о4п
      @МаксФамильный-о4п 3 ปีที่แล้ว

      @@mishanep будем пробовать. Спасибо за ответ

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

    А правильно ли сначала диспатчить асинхронный экшен, а потом уже синхронный? Ведь из-за этого создается задержка в обновлении UI. И конечно же спасибо за урок, подробно и доступно объяснили.

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

    спасибо

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

    Большое спасибо за уроки по Редаксу. Очень подробно, с актуальной информацией. Подскажите, есть ли какие-нибудь видео по Entity Adapter?

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

      Для ютуба не записывал. Я разбирал его в своём курсе по редаксу - классная штука.

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

    27:19 для таких вещей typescript и нужен что бы не гадать что там функции принимают ))

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

    12:28 необязательно что то помещать в массив зависимостей эффекта , можно просто пустой передать и все

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

    14:30 в реальности будет именно так, он поподет в rejected, а дальше уже можно взоимодействовать с state, ошибка же todos.map is not a function... а в коде в initialState есть дефолтное значение? todos: [] ?

  • @GioMikadzegio9000
    @GioMikadzegio9000 3 หลายเดือนก่อน

    спасибо !!!! если есть возможность снять видео про react query? спасибо !

    • @mishanep
      @mishanep  3 หลายเดือนก่อน +1

      У меня на канале есть такое видео

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

    спасибо за видео! Может лучше action не событием называть, а действием?

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

    Прошу сделать видос про связку Next.js + Redux Toolkit + Redux-Saga. Было бы интересно.

    • @mishanep
      @mishanep  3 ปีที่แล้ว +1

      На очереди RTK Query. Про наборы библиотек сложно делать видео. В моем представлении надо пререквизит сначала предложить.

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

    Спасибо, но пока ничего не понятно... лишь на горизонте, что то виднеется. Спасибо. Думаю, что РАЗГРЫЗУ. ))

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

    Михаил, спасибо за хороший урок
    Очень бы хотел посмотреть как можно реализовать поведение кнопки “отметить всё” что бы и на сервер шли все запросы и код был переиспользован. Сделал у себя но чтото мне не нравится мой вариант :(
    Буду признателен за совет

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

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

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

    На 39:10 увидел, что у вас в функции addTodo добавляется новый todo с id = времени. Это же неправильно изначально, разве нет? Функция addTodo не является чистой, для добавления подобных id, я бы использовал middleware. Объясню т.к. я не силен в терминах, в теории и т.д., я жесткий практик. Я бы сделал новую функцию addTodo, которая перед вызовом addTodo из reducer как раз генерировала бы id. В общем и целом, да это называется middleware. Т.к. id устанавливается между dispatch и addTodo из reducer. Функции, которые написаны были в ролике, так же являются middleware.

  • @abdulovdb
    @abdulovdb 10 หลายเดือนก่อน

    Михаил, какую тему используете в VS Code ? В последнее время в поисках светлой темы, но до сих пор безуспешно. Но ваша, по крайней мере в видео, мне не режет глаза)

    • @mishanep
      @mishanep  10 หลายเดือนก่อน +1

      Сейчас я работаю с темной темой CodeSandbox 2021. Какой была тема в момент записи данного видео, наверняка не скажу. Но вполне возможно это была стандартная светлая тема, идущая из коробки.