RTK Query или альтернативный Redux по работе с API

Поділитися
Вставка
  • Опубліковано 31 січ 2025

КОМЕНТАРІ • 225

  • @max_mrtnv
    @max_mrtnv 3 роки тому +103

    Самое потрясающее и понятное объяснение RTK Query!
    Такое видео должно быть в официальной документации!

  • @neodinok-it3ym
    @neodinok-it3ym 11 місяців тому +7

    Самые адекватные уроки на ютубе. Без воды, все четко понятно человеческим языком

  • @НиколайХаритонов-й3н

    Этот коментарий создан в качестве уважения автору и для продвижения его канала.

    • @mishanep
      @mishanep  3 роки тому +20

      Этот ответ создан, чтобы поблагодарить автора комментария =)

  • @АленаКраева-ю8п
    @АленаКраева-ю8п 10 місяців тому +1

    Самое понятное и краткое объяснение. Обожаю автора, все нравится, от тембра голоса до логики объяснения, супер!

  • @kostyakirieri7141
    @kostyakirieri7141 3 роки тому +43

    Очень круто и актуально, то что нужно было!!! еще бы с TS и тогда полный кайф был бы)

    • @awenn2015
      @awenn2015 3 роки тому +5

      Эм, какой смысл сейчас вообще без ts делать ? Сейчас все начинают на ts делать , видео какое то неполное получаеться

    • @SlouMan
      @SlouMan 3 роки тому +2

      в действительности, там всё легко типизируется. Пришлось бы dto описать, что заняло бы еще какое то время урока

  • @romankrytski8687
    @romankrytski8687 2 роки тому +8

    Спасибо большое за урок! У тебя отлично получается объяснять не самые лёгкие вещи, не самым продвинутым юзерам)

  • @larss2772
    @larss2772 9 місяців тому

    Огромная благодарность за урок, всё понятно и доступно.
    Считаю Вас одним из лучших авторов по программированию и web разработке в целом.
    Да прибудет с вами сила))

  • @serg9888
    @serg9888 3 роки тому +7

    Михаил, спасибо за видео. Для меня это уже ваше третье по счету про RTK. Кратко, но достаточно, чтобы зацепиться. А дальше уже намного легче с официальными гайдами разбираться. Отличная подача материала!

  • @mestacey8120
    @mestacey8120 Рік тому +2

    Честное слово, это самое вменяемое объяснение данной темы! Огромнейшее спасибо!

  • @maxkurylo
    @maxkurylo 2 роки тому +2

    кэширование, работающее из коробки, и запрос на получение всех данных при каждом удалении или добавлении выглядят очень стремно)
    Но, скорее всего, это все настраивается. Спасибо большое за видео!

    • @REDH3ADd
      @REDH3ADd Рік тому

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

    • @CyberDanilka
      @CyberDanilka Рік тому

      @@REDH3ADd согласен, когда суть библиотеки это перенос состояния на бэк такой коммент выглядит как минимум забавно)

  • @n3trnnr
    @n3trnnr 7 місяців тому

    Михаил, спасибо вам за обучающие ролики! Всегда доступно и понятно!

  • @igormalykhin5528
    @igormalykhin5528 8 місяців тому

    Автору браво. Это самое понятное обьяснение ртк квери что я только видел в рунете.

  • @kenanhaciyev3759
    @kenanhaciyev3759 Рік тому +5

    если что то сейчас достаточно в get-запрос написать: providesTags: ['Products'] а в post-запрос: invalidatesTags: ['Products'] - спасибо за уроки - максимально понятно

    • @ЕвгенийАнисифоров-и2ы
      @ЕвгенийАнисифоров-и2ы 10 місяців тому +2

      Огромное спасибо🥰
      Теперь у меня заработало автообнобление

    • @R1taz
      @R1taz 5 місяців тому +1

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

  • @mikhail-khoroshev
    @mikhail-khoroshev 2 роки тому +1

    Вау! Хорош! И структура информации и подача мне нравится! Однозначно подписка!

  • @konglomora3230
    @konglomora3230 3 роки тому +5

    Респект за усилия с которыми Вы доносите материал!

  • @ЕвгенийВоронков-ч2э

    раньше признавал только ulbi) Теперь + к нему еще и Миша) лайк оставил, комен оставил, видео лот корки до корки посмотрел) спасибо большое!

  • @blgarOk
    @blgarOk 2 роки тому +2

    И правда, RTK Query - крутейший инструмент! Спасибо за разжеванное объяснение!

  • @nursultanyerzhan4432
    @nursultanyerzhan4432 2 роки тому +1

    Как раз думал по этой проблеме, я фуллстэк разраб. Думал как связывать бд и редакс. Контент простой для понятия, автору большой респект ❤❤❤

  • @yodgor585
    @yodgor585 2 роки тому +2

    Просто по божески объяснил! Моё величайшее почтение

  • @I248
    @I248 Рік тому

    я присоединясь к множеству одобрильных отзывов, браво!

  • @JIKAIII
    @JIKAIII Рік тому

    Достаточно детально и ёмко изложено, очень легко вникать. Большое спасибо!

  • @anatoliyrotskin5088
    @anatoliyrotskin5088 Рік тому

    Мишаня, ты прекрасно подаешь информацию, продолжай дальше просвещать нас!

  • @BakuEmilov
    @BakuEmilov Рік тому

    спасибо, большое! объяснение на высшем уровне! желаю вам крепкого здоровье!

  • @ИгорьГолуб-н6щ
    @ИгорьГолуб-н6щ 3 роки тому +1

    Максимально доступно, понятно и интересно. Спасибо, Михаил!!!

  • @ДмитрийЛукьяненко-ь9ы

    Респект за уроки, одни из самых лучших на ютубе

  • @ahad5581
    @ahad5581 5 місяців тому

    Спасибо большое вам за этот урок. Было очень понятно. Ставлю лайк ❤

  • @frontendonly
    @frontendonly 3 роки тому +15

    i'm not understand your language but understand the whole video it's too simple and amazing.thanks for sharing

  • @el_marca4987
    @el_marca4987 9 місяців тому

    Больше всего нравится такой стиль изложения. Ulbi tv тоже годные видосы снимает, но очень быстро все показывает и частенько приходится нажимать на паузу, чтобы понять что вообще происходит, а в твоих видео, пока ты печатаешь уже можно смысл уловить.

  • @serjdenisov2114
    @serjdenisov2114 2 роки тому +1

    Спасибо, Михаил за понятное объяснение!!!
    Классная вещь!!!

  • @romanchenko8048
    @romanchenko8048 3 роки тому +2

    объясняете просто супер! все четко и понятно, спасибо!

  • @unlimitedgames8357
    @unlimitedgames8357 Рік тому

    Насколько же вы шикарно преподносите информацию❤

  • @ДмитроСіченко
    @ДмитроСіченко 3 роки тому +1

    Спасибо за урок, доступный, понятный материал за короткое время, хорошая работа 💪💪💪👍👍👍

  • @konsin1988
    @konsin1988 7 місяців тому

    Супер понятное и подробное объяснение!!! Спасибо!

  • @SergeyForeverOutoff
    @SergeyForeverOutoff Рік тому

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

  • @ТимурСпектров
    @ТимурСпектров 9 місяців тому

    очень крутой инструмент и очень понятно рассказан. очень хотелось бы подробно изучить все возможности RTK Query.

  • @rosen7962
    @rosen7962 3 місяці тому

    Хорошее видео, спасибо автору!

  • @Goddamn_Right
    @Goddamn_Right Рік тому +4

    15:15 При использовании доп. параметров в endpoint'е лучше написать: "query: {limit = ""} => ({url: 'goods', params: {_limit: limit, и все остальные нужные параметры, если есть, тоже сюда, как ключ: значение}})". Это не только правильно с точки зрения RTK, но и делает код более читаемым 😉

  • @mukanidrissov5487
    @mukanidrissov5487 Рік тому

    Большое спасибо за отличное объяснение такой непростой вещи

  • @oleksiihm
    @oleksiihm 3 роки тому +2

    Очень крутая штука!!! Только закончил пет проджект с этой фичей ! Спасибо актуальный контент!

  • @ylcsl4378
    @ylcsl4378 2 роки тому +1

    Очень хорошо объясняешь, очень нужные вещи, спасибо

  • @bentonfraizer69
    @bentonfraizer69 11 місяців тому

    Михаил, спасибо за труд

  • @ДеткиеНочники
    @ДеткиеНочники 2 роки тому +1

    Очень круто объяснил, спасибо!

  • @krlkonstantine
    @krlkonstantine Рік тому

    очень классный и понятный урок, большое спасибо!

  • @SabilasSalam
    @SabilasSalam Рік тому +1

    Крутой вы, лайкнул, спасибо вам, желаю успехов!

  • @aominka3767
    @aominka3767 3 роки тому +4

    спасибо большое)больше про редакс тулкит, очень полезные знания

  • @andretku
    @andretku 7 місяців тому

    Круто! сложное - простыми словами!

  • @vskoby
    @vskoby 6 місяців тому

    спасибо, отличный разбор темы!

  • @БогданЗинкевич-г3в

    Просто невероятно! Очень прошу вас на основе этого видно сделать бесконечную загрузку данных при скроле. На самом деле проблема не маленькая а решения на нее не так просто и найти адекватного именно с RTK query. Был бы очень благодарен.

  • @andreykachur3827
    @andreykachur3827 Рік тому

    Хорошее объяснение! Понял! Спасибо!

  • @fira1308
    @fira1308 Рік тому

    Очень доходчиво объяснено!!!Спасибо!!!

  • @gritsienkooleg3447
    @gritsienkooleg3447 2 роки тому

    Блин, как же это круто! Спасибо огромное! ОХх... )

  • @KerchianoBerchiano
    @KerchianoBerchiano 4 місяці тому

    Да уж ашалеть, и по редакс тулкит, и по редакс квери и по материал юай всё по делу, без воды в лайв режиме, моё почтение и уважение сэр👊

  • @Giri-16108
    @Giri-16108 3 роки тому

    Спасибо вам, как раз с РТК работаю, буду внедрять!

  • @МихаилНадеин-т8х

    супер объяснение, благодарю!!!

  • @leshiq4214
    @leshiq4214 3 роки тому

    Отличные гайды! Спасибо!

  • @РусланСабитов-и2ь

    Спасибо 👍🏻, после zustand начал понимать работу Redux, а дальше Redux toolkit там и до крольече норы можно дайте.

  • @konstantinzhirnov3013
    @konstantinzhirnov3013 3 роки тому

    Спасибо за Вашу работу.

  • @denistrapeschonok471
    @denistrapeschonok471 3 роки тому

    Спасибо большое. Круто!

  • @dr.livesey5157
    @dr.livesey5157 2 роки тому +1

    Самое лучшее объяснение из всех!

  • @artedza
    @artedza 3 роки тому

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

  • @techno-tramp
    @techno-tramp Рік тому +1

    Привет. Присоединяюсь к поблагодарившим, в целом все четко, по полочкам, в удобно перевариваемой последовательности. Но хотелось бы уточнить, на 29:00 речь про то, что если кто-то в соседней комнате что-то удалит, то мы получим свежие данные. На сколько я понимаю, автоматом мы уже их не получим. RTK Query в нашем экземпляре приложения ничего не знает об операциях в чужом приложении.

  • @beznamea9549
    @beznamea9549 3 роки тому

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

  • @kkambucha
    @kkambucha 3 роки тому

    Класс! Суперкруто!

  • @hpcforum
    @hpcforum 2 роки тому

    Спасибо. Хорошее видео.

  • @23LS023
    @23LS023 Рік тому

    Все это очень круто, единственное, пожалуйста, переключись на dark mode ))

  • @Капитангрез
    @Капитангрез 2 роки тому

    Капец как удобно! Правда придётся многое переписывать))

    • @kawaikaino5277
      @kawaikaino5277 2 роки тому

      Все прячется под капот, иногда мне кажется что это является проблемой

    • @Капитангрез
      @Капитангрез 2 роки тому

      @@kawaikaino5277 ты прав, но это очень удобно. Можно смотреть внутренности в документации, но и она меняется постоянно) так что один глаз в доку, а другой на код)

  • @druf5962
    @druf5962 2 роки тому

    на многих ютуб гайдах часто вместо с rtk query еще и axios фигачат. есть ли реальный смысл аксиос юзать или rtk query самодостаточен? спс за видос, один из лучших сенсеев на ютубе

  • @ice_records
    @ice_records Рік тому

    Спасибо автору за весь контент очень понятно и информативно.
    Такой вопрос RTK Quary это замена или альтернатива Thunk?
    просто по функционалу в RTK Quary больше возможностей и упрощений под капотом и его (как я понял) лучше использовать в компонентах, а Thunk более настраеваемая вещь которая работает в сугубо в слайсах.
    Как я понял если все упростить то в случаи:
    RTK Quary
    сначала грузиться компонент => идет запрос на сервер => выполняется логика компонента => меняется стейт в сторе redux .
    Thunk
    Сначала делаеться запрос на сервер => меняеться стейт в сторе => грузиться компонент => Выполняеться логика компонента
    Буду рад если скоректируете моё понимание об этих 2х расширениях, так как пока не могу понять что нужно и в какие моменты использовать и как их между собой связывать и нужно ли?
    Зарание спасибо.

  • @rustam_gasymov
    @rustam_gasymov 3 роки тому

    Очень круто!! Спасибо за такую качественную работу!!!Можно попросить сделать видосик связки rtk querry и websocket?

    • @mishanep
      @mishanep  3 роки тому

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

  • @vladislavbogdashev1803
    @vladislavbogdashev1803 9 місяців тому

    26:13 это всё, что нужно знать про RTK Query
    "Мы сделали для вас новый крутой инструмент, который позволяет писать меньше кода, но выучите миллион новых синтаксисов под каждый конкретный случай".
    Это всё конечно здорово звучит, но ровно до тех пор, пока у вас простой CRUD, а не большое сложное приложение, где вы можете в респонсе синхронизировать много данных.
    На мой сугубо личный взгляд, связка redux-toolkit + классическая redux-saga + axios - это лучшая сборка для вашего проекта.

  • @maximbagrayntsev5154
    @maximbagrayntsev5154 Рік тому

    Круто!!!

  • @yauhen6930
    @yauhen6930 2 місяці тому

    спасибо!

  • @Sweet-Bubaleh
    @Sweet-Bubaleh Рік тому

    Кааааайф! Спасибо!

  • @АлексейСаломатин-о4ю

    Гранд мерси. Что значит большое спасибо )

  • @АлександрОдесский-й4к

    Спасибо 👍🏿

  • @azamatzhamakeev670
    @azamatzhamakeev670 2 роки тому

    Man you are the best!

  • @ЕвгенийРумянцев-з1ц

    круто

  • @ЮрийТаратов-ы8ч
    @ЮрийТаратов-ы8ч 2 роки тому +3

    Очень доступно!
    А можно эти получаемые данные диспачить в стейт, определенный в каком-либо слайсе, и по необходимости использовать? Или хуки RTK Query сами являются таким хранилищем, которое можно подключать и использовать в нужных местах приложения?

    • @tutnichegonet
      @tutnichegonet 2 роки тому +1

      тоже интересно

    • @АртемШкитко-ц9г
      @АртемШкитко-ц9г 11 місяців тому

      привет, узнал? что то у меня не получается диспатчить

  • @ilaymorozoff4113
    @ilaymorozoff4113 3 роки тому

    Михаил, спасибо!! Пушка, огонь, пожар!

  • @deadme8039
    @deadme8039 2 роки тому

    nice one,keep doing that!

  • @kidsShow1998
    @kidsShow1998 Рік тому

    от души like

  • @pandalove6795
    @pandalove6795 Рік тому +2

    Не уверен, что после удаления или добавления объекта прямо настолько круто делать еще запрос на получение всех продуктов. Если объектов много, то они постоянно будут запрашиваться. Или это не так работает?

  • @van_za
    @van_za 2 роки тому +2

    Спасибо за видео!!!
    Как быть если нужно получить объект с сервера..., пользователь его редактирует и только потом делаем запрос на обновление, как в таком случае использовать RTK Query?

  • @Quentinrei
    @Quentinrei 7 місяців тому

    Этот комментарий создан в качестве уважения автору и для продвижения его канала.

  • @johnconnor9787
    @johnconnor9787 2 роки тому

    18:38 - Говоря об айди, недавно узнал, что в RTK еще есть nanoid() который тоже можно импортировать для создания ID

  • @mivalb7979
    @mivalb7979 3 роки тому

    Спасибо, Михаил!

  • @ssurrokk
    @ssurrokk 3 роки тому

    очень круто рассказываешь 👍

  • @rustam6287
    @rustam6287 3 роки тому

    крутоооооооооооооооооо))

  • @LHLetale
    @LHLetale 3 роки тому +1

    Не кажется что все же есть проблема, в том что происходят дополнительные запросы и перерендер всего, допустим вы обновили какой-то список, как обычно делается: обновляете данные на UI , UI Отправляет запрос на обновление не важно как он просто передает данные в API, при положительном ответе просто по id или индесу обновляешь данные, на UI обновляется только тот маленький компонент к которому привязан елемент из списка. В RTK Query после обновления происходит перерендер всего, что связано с этим списком и к тому же еще происходит запрос дополнительный на сервер, при том что сервер уже до этого сказал, что ты обновил, и у тебя по факту есть уже данные новые, но мы все равно делаем запрос. А если посложней пример, у вас есть сущьность "profile" у этой сущности есть какие-то данные и привязана сущьность "services" - это сущность допустим большой массив который мы мапим где-то на UI, из "profile" мы берем какие-то данные и показываем допустим где-то в хедере имя пользовотеля и тд а хедер находится естествено в корне апп, получается мы хотим обновить одну запись в "services" , тогда ререндер будет всего париложения к тому же будет заново мапить "services", это разве не дорого? При удалении вместо того, что бы просто при положительном ответе с сервера, удалить запись по id или индексу в приложении, приложение будет делать запросы ненужные и ререндерить полностьюб,Не знаю Не знаю, не всё так хорошо как кажется на первый взгляд, как мне кажется.

    • @myrichstory
      @myrichstory 3 роки тому

      Это реакт, он всегда ререндерит при изменении состояния

    • @LHLetale
      @LHLetale 3 роки тому +1

      ​@@myrichstory ну вроде как он не всё приложение перендэривает , а только тот компонент в котором изменились состояния

    • @antonkiryienka2862
      @antonkiryienka2862 3 роки тому

      Преждевременная оптимизация зло, имхо. Ну и по-настоящему дорого перерисовывать ui, а перерендер сам по себе не такая тяжелая операция.

  • @СлавикГусев-л4и
    @СлавикГусев-л4и 2 роки тому

    Спасибо за полезный контент , скажите пожалуйста планируется ли подробный обзор redux saga ?

    • @mishanep
      @mishanep  2 роки тому

      Не планирую. С saga работать не доводилось ни на одном проекте пока. Не уверен, что встречусь с ним))

    • @alexvoid8717
      @alexvoid8717 2 роки тому

      createListenerMiddleware - It's intended to be a lightweight alternative to more widely used Redux async middleware like sagas and observables. While similar to thunks in level of complexity and concept, it can be used to replicate some common saga usage patterns

  • @fil1806
    @fil1806 Рік тому

    Спасибо за видео. Будет ли что то по state в nextjs13+, и вообще имеет ли смысл это использовать в nextjs, или там есть другие методики?

    • @mishanep
      @mishanep  Рік тому

      У меня было видео про клиентские компоненты nextjs 13+ и там я немного затрагивал тему использования стейт-менеджеров. По сути, в текущем варианте вы можете использовать редакс, как и прежде. Но только в клиентских компонентах.

  • @StGwBo-uu5nx
    @StGwBo-uu5nx 4 місяці тому

    Хорош

  • @true227
    @true227 11 місяців тому

    Михаил, а какой метод получения данных через api предпочтительнее? CreateAsyncThunk или RTK Query?

  • @АлександрМельников-я9п

    Ждём RTK Query TS)

  • @platonyasev1913
    @platonyasev1913 3 роки тому

    Михаил, спасибо большое, отличное видео! А вы используете RTK-query на проде? Сейчас решаем с командой, что выбрать для нового проекта, где уже используется rtk - этот инструмент или react-query. Может быть, есть опыт работы с обеими библиотеками, что посоветуете?

    • @mishanep
      @mishanep  3 роки тому

      Приветствую!
      С react-query пока не работал. В продакшн rtk в моей текущей компании не используется, но у нас по специфике проекта не так много редакса.

  • @sivkaburka1062
    @sivkaburka1062 2 роки тому

    Досмотрел до 21:02

  • @Amelin1207
    @Amelin1207 Рік тому

    господи ты бог)

  • @dmitriymovchan6563
    @dmitriymovchan6563 3 роки тому +3

    Не понял, а что, в RTK Query, GET запросы можно делать только автоматически при рендере компонента? А что если мне нужно сделать GET запрос при клике на кнопку? RTK Query так может?

    • @Acmuddi
      @Acmuddi 3 роки тому +3

      Может, через useLazyQuery. Такой хук имеет trigger, через него можно сделать fetch данных при клике на кнопку (по сути работает также, как и mutation).

    • @dmitriymovchan6563
      @dmitriymovchan6563 3 роки тому

      @@Acmuddi Спасибо. Попробую.

  • @rybiizhir
    @rybiizhir 3 місяці тому

    Смотрю на 1.5 скорости, норм

  • @kyryloovsiannik7207
    @kyryloovsiannik7207 3 роки тому

    пушка, спасибо!