The Most Underrated State Management Tool in React

  Рет қаралды 19,762

Cosden Solutions

Cosden Solutions

Күн бұрын

Пікірлер: 69
@johng.weller468
@johng.weller468 4 ай бұрын
I have decided not to let the never-ending topic of state management in React overwhelm me. I have chosen to use React-Query for server state management and Zustand for the rest. This makes my life simpler.
@adamzalesak
@adamzalesak 4 ай бұрын
What do you mean by "the rest"? How do you distinguish between local and global state? And what about state boundary (reset state after a specific component is unmounted)?
@johng.weller468
@johng.weller468 4 ай бұрын
@@adamzalesak I'm not aware of every type of state that might exist in a react application, but at my current level, I do know that there is the server state and the client state; so in my comment, "the rest" was referring to the client state that includes the global state that doesn't depend on data from the server. In my opinion, every state that is only used inside a component to manage its internal data is a local state. If at any point another component in the application has to be aware of that state, I turn it into a global state, and voila. State boundary, 🤔I do not have any experience with that, so I'm still thinking 😅
@vinzz1786
@vinzz1786 4 ай бұрын
@@johng.weller468 great answer
@nizomsidiq3
@nizomsidiq3 4 ай бұрын
agreed, react-query for server, zustand for client global state, and just use context/state for component scoped state,
@johndevnoza4223
@johndevnoza4223 4 ай бұрын
I do exactly same and i think it is because im a begginer and always looking for short and easy way.
@Szchmausser
@Szchmausser 3 ай бұрын
I am using this approach to manage my global state with react-query, No need of React Context, or another library like Zustand. With only these 2 files and calling in consumer components, let me have the data in single source of truth. Thanks for the video!
@devyb-cc
@devyb-cc 4 ай бұрын
react-query is truly a blessing for react community.
@RonnieDenzel
@RonnieDenzel 4 ай бұрын
Eyyyyyy,codsens arguably first sponsor,congratulations🎉
@theoriginators1882
@theoriginators1882 4 ай бұрын
Splendid, and your course project react was great as well :)
@hofimastah
@hofimastah 4 ай бұрын
Wow that's great! Updating your react query to v5 would also be a blast!
@jsward17
@jsward17 3 ай бұрын
Would the code be different?
@hofimastah
@hofimastah 3 ай бұрын
@@jsward17 it's not backward compatible
@Onto.walking
@Onto.walking 2 ай бұрын
I wanna watch every video of this channel and i am going to, this is premium content ❤
@rockNbrain
@rockNbrain 4 ай бұрын
React-query is an awesome piece of tech, i'm a big fan of tanner and his crew... but using RQ like a global state management looks like a workaround, maybe it's better to use libs that were made for this purpose, like zustand, mobx and so on
@melvins126
@melvins126 4 ай бұрын
Wow I will use this approach for sure. Thanks
@MarPhone123
@MarPhone123 4 ай бұрын
Hey there Cosden! This is how we manage our state in our company. One thing though, react query has a default cache time of 5 minutes, that means the data will be erased from the cache after that time, shouldn't we add a cacheTime: Infinity to the configuration params? Great video.
@cosdensolutions
@cosdensolutions 4 ай бұрын
yes we should! :D
@hallejujah
@hallejujah Ай бұрын
it doesn't come from tanstack, it comes from heaven😮
@joeldaros
@joeldaros 4 ай бұрын
Please don’t do this. This is becoming a really big mess really quickly. Yes it works, but that’s the same as using a war tank to go to mall, you’ll get there sometime, but why?
@lamhung4899
@lamhung4899 4 ай бұрын
Ppl talk too much about React Query + zustand, but then realize they become Redux toolkit technically 😂
@cosdensolutions
@cosdensolutions 4 ай бұрын
yep
@IsmailCherri
@IsmailCherri 4 ай бұрын
Why not use react-intl to store global constants? Or maybe msw to handle data manipulation? Even better, jest assertions to validate forms?
@arnhazra
@arnhazra 4 ай бұрын
Can you make a video on event driven design with event emitter on react where we can pass events from one component and catch event in another. Thanks 😄
4 ай бұрын
I don't really see the use in the if I'm being honest. That being said, it's a cool DX - and a nice exercise in generics and hook factories. I'd maybe look into just recreating signals or using custom events or something to recreate a global state solution instead so you can see how you don't really need that stuff from react query. All you need is a list of listeners and a way for them to subscribe to the state. Another thing you might have failed to consider is how this is (kind of unnessecarily) polluting react query's keys. It's cumbersome to maintain unique keys for every state if this is used actively, and especially not mixing those keys with existing query keys used in the query client for actual queries. Imagine also having a user query somewhere with the same "users" query key.
@doma7786
@doma7786 4 ай бұрын
I realized that with this comment. Thanks
@ptolemyhenson6838
@ptolemyhenson6838 4 ай бұрын
What are the benefits of this? It seems like it's functionally just a global context provider, since the features specific to React Query are disabled explicitly.
@ShambhuVibe
@ShambhuVibe 4 ай бұрын
Data remains there on the state after refresh
@sebastianlpoliak
@sebastianlpoliak 4 ай бұрын
​@@ShambhuVibe data is not persisted between page refreshes if that's what you mean Between react context and RQ the only benefit is the improved way of handling the data updates. Apart from that I don't see a clear benefit and if you really need global state I guess there are better options that are meant for that like valtion, zustand or jotai
@Gokhan-er8qv
@Gokhan-er8qv 4 ай бұрын
@@sebastianlpoliak just use zustand its better than redux and this query shit
@Reactnativetech
@Reactnativetech 4 ай бұрын
Do you know it handle cache management for API. So if you has same component in multiple screen and it hit the API every time you visit the screen when you didnt use react-query which is not good especially when you have thousands or millions of users, your server will definitely be overloaded, that's where cache management is needed, for which react-query provides that solution, and there are many other benefits.
@ਹੈਪ੍ਪੀਕੰਬੋਜ
@ਹੈਪ੍ਪੀਕੰਬੋਜ 4 ай бұрын
Sir, can we import custom hooks dynamically? When I try to import a custom hook dynamically, it gives me an error because it doesn't detect the imports used inside the custom hook.
@cosdensolutions
@cosdensolutions 4 ай бұрын
nope, custom hooks need to be known at render time. And they can't change order from one render to the next
@Leandro-4687
@Leandro-4687 4 ай бұрын
Isn't the default cache time for React Query 5 minutes? If you want to use this strategy, wouldn't you need to set an infinite cache time to prevent data loss?
@cosdensolutions
@cosdensolutions 4 ай бұрын
good catch, yes!
@brayanyevenes5954
@brayanyevenes5954 4 ай бұрын
Jotai && Zustand && TanStack Query
@roninspect4357
@roninspect4357 4 ай бұрын
Some videos about nextjs please
@markcampbell2491
@markcampbell2491 17 күн бұрын
What happens if the user updates the state and then refreshes the browser?
@TheTeup
@TheTeup 15 күн бұрын
Can context api be replaced by this?
@niklausmikaelson7332
@niklausmikaelson7332 3 ай бұрын
From past days i was looking for it how i can use it to manage data
@asankasiriwardena3383
@asankasiriwardena3383 4 ай бұрын
Does it support subscriptions or selectors similar to Zustand? I mean we need to nofity other components when a certain slice of state changes.
@Reactnativetech
@Reactnativetech 4 ай бұрын
I think it will rerender, and i think it will also behavior like useState or reducer when the state change it will rerender
@slhliwwa5403
@slhliwwa5403 4 ай бұрын
broo do you have react projects in your course ??
@cosdensolutions
@cosdensolutions 4 ай бұрын
the whole course is one big project so yes :D
@nettemsarath3663
@nettemsarath3663 4 ай бұрын
Hey cosden, I have been working on javascript for the past 3 years, i used to write better code but iam always afraid of using typescript especially when integrating and using other 3rd party libraries or modules, Because I have to use their types which makes me Little afraid, so do u have any suggestions on this
@botyironcastle
@botyironcastle 2 ай бұрын
why would I use react if I need a 3rd party library for everything...
@4v4
@4v4 2 ай бұрын
bro, i watch your videos on a tv. the font-size is soooo small
@MarlonEnglemam
@MarlonEnglemam 4 ай бұрын
I am trying to use react query to deal with API fetches and at the same time I need to store the data from the backend in states since there are a lot of changes that the user should be able to perform before sending the manipulated data to get updated in the backend. I'm currently just fetching the data with react query and saving the results in states inside of context API providers. I feel like I'm doing something wrong. Has anyone gone through the same? (next js 14 app) I didnt know I could achieve something familiar with react query.
@amaury_permer
@amaury_permer 4 ай бұрын
React query caches data by default, that's why it asks for a query key
@rockNbrain
@rockNbrain 4 ай бұрын
I think you don't need to use useState in this case, just use the data the RQ returns
@StingSting844
@StingSting844 4 ай бұрын
Nice video. But React query is one of the most used and well liked state management solutions for react. Its not underrated in any way
@LukeCreates
@LukeCreates 3 ай бұрын
I see what you’re doing, but this seems like an insane approach… React Query is an _asynchronous_ state management library, so I’m not sure it’s great for this use case.
@zul.overflow
@zul.overflow 4 ай бұрын
Closure
@kalideb-y3y
@kalideb-y3y 3 ай бұрын
why don't you just make the type of the "queryKey" also a generic type instead of uknown?
@tomasg6251
@tomasg6251 3 ай бұрын
super long briliant ad
@husniddinnorqulov7368
@husniddinnorqulov7368 4 ай бұрын
@Luisllaboj19
@Luisllaboj19 4 ай бұрын
Why doing this when you have other state management solutions that were actually created with that purpose... I mean, I don't believe this offers any benefits and it's just a lot of unnecessary boilerplate. Idk, even TKDodo, the TanStack query mantainer recommends using this library only for async state and server state, and leave client state for libraries such as Zustand
@himanshumishra3425
@himanshumishra3425 4 ай бұрын
What if we want to persist some of the data
@Xeras82
@Xeras82 4 ай бұрын
Disabling the default behavior of @tanstack/query indicates that you are abusing the library as state manager.
@cosdensolutions
@cosdensolutions 4 ай бұрын
nope, I disable that behavior all the time even just for fetching. It's meant to be configurable
Combining Zustand with React Query
20:24
Cosden Solutions
Рет қаралды 27 М.
You Are Using useEffect Wrong
14:40
Cosden Solutions
Рет қаралды 36 М.
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 112 МЛН
ТЫ В ДЕТСТВЕ КОГДА ВЫПАЛ ЗУБ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 4,6 МЛН
The Singing Challenge #joker #Harriet Quinn
00:35
佐助与鸣人
Рет қаралды 48 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
This is beginning to get a little annoying!
14:02
Chops Garage
Рет қаралды 23 М.
State Managers Are Making Your Code Worse In React
13:33
Web Dev Simplified
Рет қаралды 201 М.
Zustand with Context API - An Advanced Pattern
19:12
Cosden Solutions
Рет қаралды 13 М.
React Query tips from the maintainer @tkDodo
16:19
Andrew Burgess
Рет қаралды 26 М.
The Correct Way to Use Form Data in React
17:29
Cosden Solutions
Рет қаралды 14 М.
Why Everyone Loves Zustand
29:27
Theo - t3․gg
Рет қаралды 107 М.
The Most Important Design Pattern in React
35:04
Cosden Solutions
Рет қаралды 105 М.
Redux Toolkit Query vs React Query
22:12
Jack Herrington
Рет қаралды 109 М.
Learn React Hooks: useCallback - Simply Explained!
17:15
Cosden Solutions
Рет қаралды 105 М.
So, you want to be a programmer?
20:43
ForrestKnight
Рет қаралды 407 М.
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 112 МЛН