React Redux Toolkit Query Tutorial and RTK Query CRUD Example App

  Рет қаралды 120,979

Dave Gray

Dave Gray

Күн бұрын

Web Dev Roadmap for Beginners (Free!): bit.ly/DaveGrayWebDevRoadmap
In this React Redux Toolkit Query tutorial, you will build a CRUD example app with RTK Query and React. RTK Query abstracts API logic from your code and creates custom React hooks for easy implementation.
💖 Support me on Patreon ➜ / davegray
⭐ Become a full-stack web dev with Zero To Mastery Courses:
- Advanced React & Redux: bit.ly/AdvReactDev
- Jr to Senior Web Dev Roadmap: bit.ly/WebDevRoadmap-JrtoSr
- Master FAANG Coding Interviews: bit.ly/FAANGInterview
🚩 Subscribe ➜ bit.ly/3nGHmNn
🚀 React JS for Beginners full course - 9 hours: • React JS Full Course f...
👀 React Redux Toolkit tutorial series - • React Redux Toolkit Tu...
📬 Course Updates ➜ courses.davegray.codes/
🔗 Source Code and Resources for this Redux Toolkit Series: github.com/gitdagray/react_re...
React Redux Toolkit Query Tutorial and RTK Query CRUD Example App
(00:00) Intro
(00:14) Welcome
(00:28) Prerequisite knowledge
(00:46) Project dependencies
(01:41) React v18 index changes
(02:17) JSON Server
(03:48) App and TodoList components
(05:07) Create an api slice
(08:47) ApiProvider
(09:57) Apply useGetTodosQuery in TodoList
(12:30) Adding mutations to the slice
(15:21) Apply mutation hooks in TodoList
(18:08) Cached data
(19:14) Tags, invalidating cache, and auto-refetching
(21:48) Transforming the response
☕ Buy Me A Coffee: www.buymeacoffee.com/davegray
📚 Tutorial References:
🔗 NPM JSON-Server: www.npmjs.com/package/json-se...
🔗 Font Awesome React Icons: fontawesome.com/docs/web/use-...
📚 General Redux Toolkit References:
🔗 Official Site for Redux Toolkit: redux-toolkit.js.org/
🔗 Redux Devtools: github.com/reduxjs/redux-devt...
🔗 Immer.js: immerjs.github.io/immer/
🔗 ES7 React JS Snippets Extension for VS Code:
marketplace.visualstudio.com/...
🔗 React Dev Tools Extension for Chrome:
chrome.google.com/webstore/de...
📚 General React References:
ReactJS Official site: reactjs.org/
React Wikipedia: en.wikipedia.org/wiki/React_(...)
React Jobs: www.ziprecruiter.com/candidat...
✅ Follow Me:
Github: github.com/gitdagray
Twitter: / yesdavidgray
LinkedIn: / davidagray
Blog: yesdavidgray.com
Reddit: / daveoneleven
Was this tutorial about RTK Query and building an example CRUD app helpful? If so, please share. Let me know your thoughts in the comments.
#redux #rtk #query

Пікірлер: 277
@muhammadhaseebfarooqkhan9597
@muhammadhaseebfarooqkhan9597 8 ай бұрын
Thank you Dave, You really elaborated every thing along side cases which help us to understand more clearly.
@medi7573
@medi7573 Жыл бұрын
This video should be added to the docs, as an easy guide to get started with RTK Query, just amazing!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thanks! 🙏💯 They actually did add my full course video that includes this video chapter. You can find it here: redux.js.org/tutorials/videos#redux-toolkit-complete-tutorial-with-dave-gray
@viditgoel2909
@viditgoel2909 6 ай бұрын
congratulations and thanks for bringing out this amazing content@@DaveGrayTeachesCode
@dustyhordofelbamana279
@dustyhordofelbamana279 2 жыл бұрын
Hello Dave, I would like to thank you for your multifaceted contribution in the life of several developers in the world and in particular mine. I am in full reconversion, and your videos are a breath of oxygen, so much it allows me to apprehend the thing differently. GOD Bless You, one of your admirers from France!
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Thank you so much for the kind words, Dusty! 🙏💯
@dustyhordofelbamana279
@dustyhordofelbamana279 2 жыл бұрын
@@DaveGrayTeachesCode 🙏 Dave!
@randomvideos90128
@randomvideos90128 Ай бұрын
Thank you very much. Your explanation makes me more understanding of the RTK query.
@SimPwear84
@SimPwear84 Жыл бұрын
Great intro! Thank you so much for this lesson. You're such a gem providing useful and real world problems and solutions.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're very welcome!
@saketparasher3762
@saketparasher3762 2 жыл бұрын
I asked for rtk query at beginning of redux toolkit series, and got it. Thanks Dave. ❤❤ Learn a lot from your react authentication and authorization series.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Glad I could help, Saket!
@aileenchan3741
@aileenchan3741 9 ай бұрын
Dave, I like the VS Code plugin or extension that is highlighting vertically from open line to the end line (at 17:01 minutes). Do you remember the name by any chance? 😎
@shineLouisShine
@shineLouisShine 3 ай бұрын
What a neat introduction. Thank you!
@vincent3542
@vincent3542 2 жыл бұрын
hi Dave! I just want to say a big thank you for your efforts in creating a lot of tutorial playlists, especially React and Redux. The playlist on your channel is my main intake when learning new technology, because you really don't just present shallow content for tutorial size, but you dare to explore topics that are much more advanced. Even now I have got a job as a web frontend, your channel is still the first place I'm looking for 😉💌
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
I sincerely appreciate the kind words, and am glad I could help! 💯🚀
@vincent3542
@vincent3542 2 жыл бұрын
@@DaveGrayTeachesCode ❤️❤️❤️
@marziehmokhtari7141
@marziehmokhtari7141 7 ай бұрын
thanks for your great teaching💐
@brortiz
@brortiz 5 ай бұрын
Thank you Dave, it helped me a lot!
@tundeadebanjo6579
@tundeadebanjo6579 9 ай бұрын
Very well explained. Thanks Dave
@austinstephens3005
@austinstephens3005 Жыл бұрын
Dave, Thanks for this breif tutorial on RTK Query. My team at work is using it in our project and I was looking for a quick and decent video on the topic to ease myself into learning it. This video did just that. Thank you sir.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're very welcome, Austin! Glad I could help!
@flaviacohen7922
@flaviacohen7922 Жыл бұрын
This is the best tutorial of RTK Query i've found so far! Thanks a lot!!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're very welcome! 💯
@fancyAlex1993
@fancyAlex1993 2 жыл бұрын
Tried learning rtk query on my own using the documentation, it was hell ! Thank you for simplifying it
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Glad it helped! 💯
@mohammadumar443
@mohammadumar443 Жыл бұрын
@@DaveGrayTeachesCode how will we do conditional querying with some data or on button click ?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
@@mohammadumar443 great question! RTK offers a "skip" parameter for this: redux-toolkit.js.org/rtk-query/usage/conditional-fetching
@CryPoison
@CryPoison Жыл бұрын
Thank you very much. I was a bit scared at first but knowing context api and redux makes this one easier than ever.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@ahmedmusawir
@ahmedmusawir Жыл бұрын
This is the best one on the topic by far ... Great job! Thanx!!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad it was helpful!
@robg1395
@robg1395 11 ай бұрын
Thanks for the great tutorial. I have been dabbling a bit in RTK and so many things clicked for me while I was watching this
@DaveGrayTeachesCode
@DaveGrayTeachesCode 11 ай бұрын
Glad to hear that!
@mounis
@mounis 2 жыл бұрын
Just what I was looking for, thanks a lot!
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
You're welcome! 💯
@aarondiaz2506
@aarondiaz2506 11 ай бұрын
I'm not really experienced to talk but i have Associate Degree in web development. I have never worked as dev but i graduated when first version of AngularJs was being released and i learned to code with js, php, java, pyhton and SQL with Mysql. Now i'm back to coding for fun and i love how easy everything has become, well maybe not easy for a beginner because most difficult part are concepts but a lot of work has been simplified, rtk query is a perfect example, love it! Thanks great explanation.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 11 ай бұрын
Thank you!
@moddaman90
@moddaman90 7 ай бұрын
Nice tutorial! Helped a lot. One question regarding RTX: I see that both in your tutorial and documentation the flow goes like this: - Get All Elements - Update (mutate) one element, then invalidate get all elements - Get all elements Seems to be overfetching.Usually when I update one element I would just fetch that updated version and update only that element in the list. Is this not best practice? I can´t figure out how to just fetch the updated element and update that in the list. Do you know?
@eslamelwakeil5922
@eslamelwakeil5922 Ай бұрын
Thanks mr Dav for this amazing content❤️❤️
@jomaramomas7682
@jomaramomas7682 Жыл бұрын
Thank you again for an awesome video man! Keep it up!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome and will do! 🚀
@geomukkath5373
@geomukkath5373 Жыл бұрын
Loved the tutorial. Just one question, why not use .reverse() method instead of .sort() ? That's far simpler. Let me know if there is a problem that I am not aware of.
@samislam2746
@samislam2746 2 жыл бұрын
Wow, this explanation is literally the best in the universe 🤔 You deserve the GOLDEN BUZZ! 🎉
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Thank you, Sam! 🙏
@phyf3
@phyf3 Жыл бұрын
This is really helpful Dave, thanks!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome! 💯
@nikolayshatalov5765
@nikolayshatalov5765 2 ай бұрын
amazing content! thank you, sir
@josesantillan732
@josesantillan732 Жыл бұрын
Marvelous! Thanks man. Keep it that way
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You got it!
@danielrosenwald
@danielrosenwald Жыл бұрын
Dave, this is by far the best RTK Query tutorial I've watched. Very in-depth yet easy to understand. The application I'm building uses Redux for more than API calls - it also includes the state of some UI items, for example which "Todo" is currently selected for editing. How would you go about combining the RTK Queries with regular Redux state that does not depend on an API call?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thanks Daniel! You can do both. Here is a tutorial where I use RTK Query for login authentication, but then I store the auth state in Redux: kzbin.info/www/bejne/Y3utd4Rvl9CImNE ...I also apply this strategy in my recent MERN Stack Project series. Just an example that you can apply to any state you want to store in Redux when you are using RTKQ.
@danielrosenwald
@danielrosenwald Жыл бұрын
@@DaveGrayTeachesCode Thank you for the quick reply Dave! I'll check out those other videos.
@tamalmallick887
@tamalmallick887 Жыл бұрын
Hi Dave, I am looking for something that you explain. It's amazing. Your explanation is very clear to understand RTK query with CRUD projects.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad I could help, Tamal! 💯
@chanchaldutta7778
@chanchaldutta7778 2 жыл бұрын
Dave, thanks a lot for your brilliant tutorials. I learnt a lot from those. My humble request to you, is it possible to create react tutorials using typescripts as many organizations nowadays are moving to it?
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Thank you, Chanchal! 🙏 I do plan to start a Typescript series this year.
@moretimeproductions
@moretimeproductions Жыл бұрын
It's a great idea, but also it is a nice challenge to do these tutorials and add Typescript yourself, I learned a lot doing that, because I could use. what I already know and also had to do quiet a bit of research to find out about all the stuff I didn't know.
@stevereid636
@stevereid636 Жыл бұрын
@@moretimeproductions That's exactly what I've been doing 👍🏾
@omarkraidie
@omarkraidie Жыл бұрын
I think your vscode theme has an outside effect on the quality of your videos :D It is just beautiful to look at!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thank you, Omar! I'm using the Github theme. It has several dark mode options.
@Mark-iv5dl
@Mark-iv5dl 16 күн бұрын
thanks to you! learn it in 10 minutes haha skipping some parts but awesome
@emanuelmejia4525
@emanuelmejia4525 Жыл бұрын
Your videos are gold, thanks so much!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad you like them! 💯
@somnathdas8922
@somnathdas8922 5 ай бұрын
Thanks for this tutorial.
@mertdr
@mertdr 2 жыл бұрын
Great tutorial Dave, quick and easy! I’m reading the documentation now and maybe I might find the answer but I’d like ask. Apparenty RTK query is caching the data by default. I’m not sure about the use cases of caching since the state must be changed after any action taken by visitor. I noticed that invalidateTags is an array and it might be possible to invalidate certain keys only and cache the rest, am I right?
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
You are right on! It works very well 💯
@neelnarwadkar5921
@neelnarwadkar5921 Ай бұрын
Great content! How do i perform basic operations on fetched data that don't require an API such as increasing or decreasing quantity of a product in the cart, filter list by name.
@regilearn2138
@regilearn2138 2 жыл бұрын
Really appreciate you Dave ❤
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Thank you, Regi! 🙏🙏
@artemiuszkuzniecow1283
@artemiuszkuzniecow1283 Жыл бұрын
Thank you so much! Amazing lesson!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're very welcome!
@waltergermanes4528
@waltergermanes4528 10 ай бұрын
Is it good practice to wrap index using apiprovider?
@Thongtele
@Thongtele Жыл бұрын
Thank you Dave. You are great.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You are very welcome
@georgy2763
@georgy2763 Жыл бұрын
Hi Dave, thanks a lot for your amazing videos. I am curios what do you think about the typescript and if you going to cover it with React/Redux later? In my current junior internship position, it is required to know it, and it seems that many companies want you to know it these days (at least in Russia)
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I'm planning on covering it soon because I agree that many now want their devs to know it. I don't think it is essential as JS and React work without it, but it is currently in demand.
@Kisovn
@Kisovn Ай бұрын
Hi Dave, the app on my side works mostly fine, but the delete method is always returning “500 internal server error”. I have the same code and the post/patch methods work as intended. Thanks for your courses 😌
@dvd34
@dvd34 Жыл бұрын
Thank you Dave ! At 10:14 , what extension are you using to automatically spread the returned object from useGetTodosQuery ?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I think at 10:14 you are referring to "destructuring" the object from useGetTodosQuery. There is no extension for that. I just quickly pasted it into the code - while saying I was pasting it - but you just need to type that out.
@matthewgrichmond
@matthewgrichmond Жыл бұрын
Thanks, this helped me a lot!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad to hear it! Thank you for the support! 💯🚀
@ABUTAHER-wg7gz
@ABUTAHER-wg7gz Жыл бұрын
Hello if i want to use authorization headers for RTK Query, can i use direct argument? or have to store on redux store?
@Clash-Roblox
@Clash-Roblox 5 ай бұрын
Thank you for your RTK query lesson but in my project, I have a lot endpoints and Slices to deal with. So in index.js file, how can I add others slices to api in ApiProvider?
@abudavid5929
@abudavid5929 8 ай бұрын
What of the AddTodo has an error from the backend, how do you resolve it.
@benarbiamohamedtaher546
@benarbiamohamedtaher546 Жыл бұрын
Thanks a lot Dave
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@farnoodlotfali4912
@farnoodlotfali4912 2 жыл бұрын
thanks a lot for this Tutorial!!!
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
You're welcome, Farnood! 🚀
@johnconnor9787
@johnconnor9787 Жыл бұрын
The best video on RTK Query
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thank you!
@Pareshbpatel
@Pareshbpatel Жыл бұрын
An excellent introduction to RTK Query with a CRUD example. Thanks, Dave {2022-06-20}, {2023-02-27}, {2023-04-03}
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome, Paresh! 💯
@stonecomstock
@stonecomstock Жыл бұрын
Thank you Dave. Very helpful! I am a little confused about the caching part though, where is the data being cached? Is it in our redux store/state? Or is it separate? For example are we able to target it with a useSelector and use the cached data in other components?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I understand the confusion. It is best to target it with one of the RTK Query hooks but then add the selectFromResult option for the hook. That way, a new request will not be issued for data you already have. Reference: redux-toolkit.js.org/rtk-query/usage/queries#query-hook-options
@stonecomstock
@stonecomstock Жыл бұрын
@@DaveGrayTeachesCode That makes sense! Thanks again!
@tejalbhavsar4610
@tejalbhavsar4610 2 жыл бұрын
hey dave thak you for creating this video, I read the docs but wan not clear about transfer response and cache, now i got them all.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Glad I could help! 💯
@thimiraakash9024
@thimiraakash9024 8 ай бұрын
Thank you very much this is a really good video❣ Would u please tell me that how or from where did u take that ===>tagTypes:['Todo']. I had the idea what was the purpose for using that but need to know that how did u decide that 'Todo' is the tag. Thank you Dave! Cheers..
@mariusngaboyamahina9190
@mariusngaboyamahina9190 2 жыл бұрын
Thank you, @Dave Gray
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
You're welcome, Marius! 🙏💯
@headlikeahole6548
@headlikeahole6548 4 ай бұрын
Good video, thanks.
@komilolimov2257
@komilolimov2257 10 ай бұрын
Thats was awesome
@htmlfivedev
@htmlfivedev 11 ай бұрын
This is the BEST tutorial on this topic in the whole youtube ... thanx very much dawwwgh!!
@DaveGrayTeachesCode
@DaveGrayTeachesCode 11 ай бұрын
Thank you!
@amin001001
@amin001001 Жыл бұрын
Hi Dave! Very cool content. Thanks. I had a question. I'm trying to call the API in a component, and read the value in another component (using lazy queries), however it never shows the result where I want to read it. I've checked and the value is written to the store, and is actually readable using useSelector with some hacky tricks. Do you know how can I possibly read the value in the destination component? Thank you!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
With RTK Query, you want to use the same useQuery hook you used in the parent component - but use selectFromResult to get the data that was already requested. You can see an example of this here: github.com/gitdagray/react_redux_toolkit/blob/main/08_lesson/src/features/posts/SinglePostPage.js ..I had already used the useGetPostsQuery hook in the PostsList and did not want to create another request just to view one of the posts. Link to the parent component code here: github.com/gitdagray/react_redux_toolkit/blob/main/08_lesson/src/features/posts/PostsList.js
@leonidkonstantinovich3418
@leonidkonstantinovich3418 Жыл бұрын
Hi! Excellent tutorial, super informative and clear. Thank you very much. Could you say a few words about how to manipulate state using RTK Query? When using createAsyncThunk one sets up extrareducers where it is possible to change any state variable while handling api call "status" (pending, fullfilled, rejected). Should one create another slice for state management that will interact with the api slice? Or is it possible to incorporate the initial state in the api slice and change it based on data received from api?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Hi Leonid, and great question! I think what you are looking for is the transformResponse option in RTK Query. I'll be using it in the MERN Stack series I'm currently creating. redux-toolkit.js.org/rtk-query/usage/customizing-queries#customizing-query-responses-with-transformresponse
@leonidkonstantinovich3418
@leonidkonstantinovich3418 Жыл бұрын
@@DaveGrayTeachesCode Thanks for answering! That's probably it, I'll give it a try
@boburmirzomuhibullaev3081
@boburmirzomuhibullaev3081 Жыл бұрын
love your tutorials! Could you make your videos with typescript, please? I think it will another level
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I am building a TypeScript for beginners series right now. After it is complete, I will add some additional TS content.
@mindblown9365
@mindblown9365 11 ай бұрын
Excellent tutorial. Thanks alot.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 11 ай бұрын
You're welcome!
@user-nb4tw1ju6u
@user-nb4tw1ju6u 4 ай бұрын
At 9:50 How can I feed multiple slices to AppProvider if my component relies on data from differnt sources
@lacascadaobregon
@lacascadaobregon Жыл бұрын
Amazing. Love the way you put this together. I've not had a piece of code make so much sense in quite some time. Thanks!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@olenadiachenko8943
@olenadiachenko8943 Жыл бұрын
Hi! I hate to comment, but not today. Information is very structured, clear, and helpful. Thanks a lot for your great work
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thank you! 💯
@sagarramaswamy8368
@sagarramaswamy8368 Жыл бұрын
Thanks a lot for the tutorial
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@SanjarKodirov-ww3le
@SanjarKodirov-ww3le Жыл бұрын
thank you so much for this lesson. i am e project right now. And this video series helping me a lot )
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Happy to hear that!
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad to hear that!
@dharmeshgohil9375
@dharmeshgohil9375 2 жыл бұрын
Loved it brother
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Thank you, Dharmesh! 💯
@thomassleeman9780
@thomassleeman9780 Жыл бұрын
Hi Dave, thanks for the video. I understand everything you have covered but what about if you want to set up a mutation in apiSlice with data that is a manipulated version of what was fetched from a query? I tried pulling an object array into a component using a RTKQ query hook but when I duplicated the array and tried to make changes to it inside the component I got an error saying that the object elements are read-only.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I think you are looking for something like transformResponse: redux-toolkit.js.org/rtk-query/usage/customizing-queries#customizing-query-responses-with-transformresponse
@thomassleeman9780
@thomassleeman9780 Жыл бұрын
@@DaveGrayTeachesCode thanks, I’ll give that a go.
@codernerd7076
@codernerd7076 2 жыл бұрын
I love this video it's one of the more clear explanation I saw on this topic, however keep with one big question. How do I use this with redux toolkit normal reducers, can I call the api slide from the reducer slides, what about using it to save one user login status? This seems to handle server state level data while redux handling client side data?
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Good questions - and most of that is coming in the next one where I integrate RTK Query with the blog project and normalized state from the previous tutorials. You are correct that this interacts with the server data but it does keep a cache which is used until invalidated - then auto-refetch occurs.
@codernerd7076
@codernerd7076 2 жыл бұрын
@@DaveGrayTeachesCode awesome can't wait for the videos but take all the time you need
@osasferguson
@osasferguson Жыл бұрын
Hi Dave, is there a way to trigger the default GET request by the click of a button? Does the "useGetTodosQuery" also provide a getToDos function that can be used to make a GET request on the click of a button just like the other mutation method hooks do?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Yes, look into refetch: redux-toolkit.js.org/rtk-query/usage/cache-behavior#re-fetching-on-demand-with-refetchinitiate
@osasferguson
@osasferguson Жыл бұрын
@@DaveGrayTeachesCode thanks, just looked it up now
@calebbush7559
@calebbush7559 Жыл бұрын
Thanks a lot! Question, suppose you have several APIs to perform CRUD operations, how are you going to structure the files?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
That's definitely more complicated. A good discussion of that with answers from one of the primary RTKQ maintainers here on Stackoverflow: stackoverflow.com/questions/69971375/how-to-use-two-api-reducer-with-rtk-query-in-configuration-store
@saketparasher3762
@saketparasher3762 2 жыл бұрын
Are you planning to update react auth series to use RTK Query insted of axios. Would love to work on conversion as I have implement user auth including retry and auto access token fetch in rtk query.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
This is a good idea for a future video! 🙏🚀
@kevinliao5021
@kevinliao5021 Жыл бұрын
I really like ur video. keep doing it👍
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad to hear that - I'll keep going!
@digitalpartner7598
@digitalpartner7598 Жыл бұрын
hello dave i hope you're doing ok , i'll never thank you enough for what you're doing , i have a question though, it's about the primary ids of the data entries should we hide them or hash them especially when we're using them along with the HTML or there will be no vulnerabilities issues if we let them as they are i mean the real values stocked in the database , any advice will be appreciated. thanks
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I don't see an issue with using the ids. If you are concerned with security, that will not help much for gaining unauthorized access.
@digitalpartner7598
@digitalpartner7598 Жыл бұрын
@@DaveGrayTeachesCode thank you sir, I have always have been concerned about users manipulating other users data, this is why I try to hide users ids and assure that the user can only manipulate the data that belongs to him so I stock the connected user Id in the token
@farshidghilich1114
@farshidghilich1114 Жыл бұрын
thank you that was very useful
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Glad to hear that!
@emmanuelakogwu7761
@emmanuelakogwu7761 Жыл бұрын
Awesome tutorial.....thank you But I'd like to ask, can one use rtkquery and reactquery for data fetching in React native too?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome! I have not, but it seems others have: bionicjulia.com/blog/implementing-rtk-query-in-react-native-app
@abduqahhornorimmatov5089
@abduqahhornorimmatov5089 Жыл бұрын
thanks
@sonamohialdin3376
@sonamohialdin3376 Жыл бұрын
Amazing tutorial
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thank you! Cheers!
@jiweihe3413
@jiweihe3413 Жыл бұрын
Thanks for the great tutorial! RTK query seems very useful. 19:30 tagTypes for cache. I am not familiar with cache. Where is cached data stored? Is it something like local storage?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
"A key feature of RTK Query is its management of cached data. When data is fetched from the server, RTK Query will store the data in the Redux store as a 'cache'." - Reference: redux-toolkit.js.org/rtk-query/usage/cache-behavior#default-cache-behavior
@jiweihe3413
@jiweihe3413 Жыл бұрын
@@DaveGrayTeachesCode thank you! this is very helpful. It seems if we close the page that calls the useQuery hook or after the default 60s, the data in the cache will be gone. It is quite different from local storage.
@anupkubade6449
@anupkubade6449 Жыл бұрын
Thank you for the tutorial Dave. Can you please guide me how can I implement Infinite scroll using RTK Query? I have a table, when I scroll to bottom, I need to fetch and append next batch of records till I fetch all the records.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome, Anup! In this tutorial (example #1), I show how to create an infinite scroll in React: kzbin.info/www/bejne/gIjPgJZ6qtiSqNU ...it is not specifically for RTK Query but the concept is the same. You will also see example #2 uses React Query. I could make a video on this for RTK specifically in the future.
@jritzeku
@jritzeku Жыл бұрын
Would it be acceptable to use Redux with React query instead of Rtk Query? It seem like they both serve same/similar purpose. Im currently watching your React Query tutorial so was hoping to implement that in my project that uses redux toolkit.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
It would be a strange combination. I'm not saying it isn't possible, but React Query will cache data for you also. If you need separate global state, React's context API might be enough.
@jritzeku
@jritzeku Жыл бұрын
@@DaveGrayTeachesCode That makes sense! I had used redux over contextAPI primarily due to performance benefits but now with React query it def changes things. I think I'll stick with useEffect and redux for now since there is lot of codebase with it. Thanks.
@flaviacohen7922
@flaviacohen7922 Жыл бұрын
Do you know if there's a way to deploy this project and run that db.json as you db? I mean... is it posible to use that json as an easy way to store data when you app is deployed?
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
It is not ideal, but I do think you could Google how to deploy it for your backend if you want to. The jsonplaceholder site runs on it if I remember correctly: jsonplaceholder.typicode.com/
@shehwarahmad2131
@shehwarahmad2131 Жыл бұрын
wow! thanks
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@eleah2665
@eleah2665 2 жыл бұрын
Todo List! Never fails.
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
Classic CRUD 💯
@russobradock
@russobradock Жыл бұрын
Tks sir :)
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome!
@ibehmicheal4192
@ibehmicheal4192 Жыл бұрын
YOU ARE A GENIUS.....NO 🧢
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Thank you!
@risechess7114
@risechess7114 8 ай бұрын
hello dave or guyz anyone can help 16:06 dave added a new todo but he didnot add an id "like using nanoId" why he left this new todo without and id, and i didnot get whats the difference between userId and id, i guess userId shows specific todo for same person i guess. but why he didnot add an id for the new todo plz help
@Kisovn
@Kisovn Ай бұрын
you can’t sort the posts with nanoid’s ids, but adding a date property to each todo would suffice as another way
@hatembenechikh7035
@hatembenechikh7035 11 ай бұрын
a side question , what is the theme that you are using in vscode it look great :D
@DaveGrayTeachesCode
@DaveGrayTeachesCode 11 ай бұрын
My theme choices: kzbin.infodp4u1NNFhtE
@samiullahsheikh5015
@samiullahsheikh5015 2 жыл бұрын
The mutation hooks doesn't provide loading, isError properties. So, in context of above point. I want to show loading button when saving a todo and clear the loading sate of the button only when the post request is successful (i.e a todo is created or deleted successfully) How it would be possible?
@DaveGrayTeachesCode
@DaveGrayTeachesCode 2 жыл бұрын
If you move on to the next tutorial in this series (just released it), you will see something like this: const [updatePost, { isLoading }] = useUpdatePostMutation()
@davithchhung7577
@davithchhung7577 Жыл бұрын
great video Dave! But I am a bit lost again :3 Can you explain when to use createAsyncThunk and when to RTK query? What are actually the differents? Thx
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Hi Davith - they are both options, and you can use either one. It is good to know both as you might work on a codebase that uses either. I prefer RTK Query when creating new projects now.
@davithchhung7577
@davithchhung7577 Жыл бұрын
@@DaveGrayTeachesCode thx you for the answer :)
@trentcox9239
@trentcox9239 Жыл бұрын
gday mate, fantastic content. quick question that im driving myself insane over here trying to figure out. With the way rtk query is implemented when it comes to building api's, the only response validation (if you can call it that) that can be done is via typescript to infer the type of the response. thats great in a development environment, but correct me if im wrong, but id rather assume any and all third party responses are unknown until i pass the response through something like zod to validate/parse the response before passing it on to my application, thus making invalid states unrepresentable, and my application predictable. so far i cannot for the life of me figure out how to parse the response of an individual query and return either an error or data state. the only solution is to create your own base query for each endpoint, which in my opinion, negates the whole createApi thing in the first place, plus the validation should be at the resource level and not the base query level. my two cents. I feel like they've shipped a car with a great engine, but forgot to install the suspension with this one....if theres a way to validate a response and return the response or an error object for a slice or the application to pick up in its 'validated' form, im seriously all ears. Cheers mate.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I'd think you could use the transformResponse method to do some custom validation: redux-toolkit.js.org/rtk-query/usage/customizing-queries#examples---transformresponse and redux-toolkit.js.org/rtk-query/usage/customizing-queries#customizing-query-responses-with-transformresponse
@trentcox9239
@trentcox9239 Жыл бұрын
@@DaveGrayTeachesCode cheers for the reply mate. intuitively that felt like the appropriate place for it, however any validation at this level that you would like to resolve to an error response wont happen because regardless of the result of the validation, it will be attached to the {data: ....} property that goes on to the application instead of the {error:...} object which is a real shame...because I use a typescript functional programming library (fp-ts), i could have my final data type as an Either but that then forces error checks in two separate areas (the error object itself and the possibility of a validation error against the data object) at the application level
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I understand you are transforming the data, but have you tried throwing a custom error at that point in a try / catch? I do that inside of an onQueryStarted portion of an api slice and it works for me. At that point, you should have an error object that you can manipulate including the response status.
@trentcox9239
@trentcox9239 Жыл бұрын
@@DaveGrayTeachesCode if that works im going to prescribe myself a few well placed uppercuts haha hopefully this is a case of missing the proverbial elephant in the room, cheers again for the reply mate!
@Kidsstories230
@Kidsstories230 Жыл бұрын
Thanks - can you please create video how to use customize basequery
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
You're welcome, Coach! I do customize a baseQuery in my Redux Auth tutorial: kzbin.info/www/bejne/Y3utd4Rvl9CImNE ...And I will be doing much the same in the MERN Stack Project series I just started. Also, if you haven't seen the docs on this part, they are helpful, too: redux-toolkit.js.org/rtk-query/usage/customizing-queries#customizing-queries-with-basequery
@iUniverse
@iUniverse Жыл бұрын
I am wondering why my sorting does not work, I also try different way but it still did not worked.
@noellel
@noellel Жыл бұрын
Would love to see transformErrorResponse incorporated and tested by forcing an error within the associated API.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
Good idea! transformErrorResponse should work in much the same way as transformResponse - to try it out, possibly disconnect your wifi / web while running the app in dev mode. You should get a 408 request timeout or similar.
@louisohaegbu4223
@louisohaegbu4223 Ай бұрын
TodoList.js:15 Uncaught TypeError: (0 , _api_apiSlice__WEBPACK_IMPORTED_MODULE_2__.useGetTodosQuery) is not a function. i am having these error
@Kidsstories230
@Kidsstories230 Жыл бұрын
Hi - if in a same component i have 3 Api calls , How to show Loading spinner in that component.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
3 API calls with RTK Query will result in 3 different isLoading states. You will want to name them differently as you destructure them from the query hooks. Something like isPostsLoading, isUsersLoading, etc. Then you can respond to each when necessary.
@Kidsstories230
@Kidsstories230 Жыл бұрын
@@DaveGrayTeachesCode thanks for your reply.Is it possible to create global spinner for all these
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
@@Kidsstories230 for sure! I like the npm package react-spinners
@mnmnisrat
@mnmnisrat 2 ай бұрын
Will u please cover this with netlify hosting in a new video
@digitalpartner7598
@digitalpartner7598 Жыл бұрын
my friend dave how are you ? help me i am stackkkkkkk, lol, i finished the backend with RTKQuery , now in the public area when user is not connected yet, there is no authorization set up in the request, so i am getting 401 from the apiSlice when i try to fetch data, what should i do please.
@DaveGrayTeachesCode
@DaveGrayTeachesCode Жыл бұрын
I did not show authorization in this series, but if you have applied the use of authorization, your users will need to be authorized before a request will be successful. You will need to let your users log in.
@digitalpartner7598
@digitalpartner7598 Жыл бұрын
​@@DaveGrayTeachesCode i needed to fetch some data when the app first load, and i figured it out , i did not know that if i apply the verifyJWT middle-ware for a router a sigle time it will apply it for the rest of the routes, so now i apply it for each rout to avoid problems, thank you dave for your work and i hope i am not bothering you with my questions , good luck
RTK Query или альтернативный Redux по работе с API
31:55
Михаил Непомнящий
Рет қаралды 92 М.
Маленькая и средняя фанта
00:56
Multi DO Smile Russian
Рет қаралды 3,4 МЛН
ПЕЙ МОЛОКО КАК ФОКУСНИК
00:37
Masomka
Рет қаралды 8 МЛН
React Redux Toolkit Query Tutorial and RTK Query CRUD Example App in Arabic
46:55
React Forms with Redux & RTK Query | MERN Stack Tutorial
53:02
Redux Toolkit Query. Работа с кешем.
14:38
knowcity
Рет қаралды 13 М.
How good is the latest version of ChatGPT? | BBC News
23:16
BBC News
Рет қаралды 89 М.
Next.js Template vs Layout with Page Transition Animations
17:19