Picking From 20 React State Managers

Поделиться
HTML-код
  • Опубликовано: 26 сен 2024

Комментарии • 274

  • @topsoilgargoyle
    @topsoilgargoyle 2 года назад +34

    Jack, your level of detail and research is second to none. Through your videos, I feel i've become a better problem solver and decision maker. A big thanks

    • @jherr
      @jherr  2 года назад +2

      Thank you!

  • @GVal98
    @GVal98 2 года назад +41

    Great video. Important addition for everyone watching this: Don't use state managers for fetching data, use React Query and you will find that probably 90% of your state is actually server state. And React Query is handling refetching, loading state, errors and caching for you out of the box.

    • @belkocik
      @belkocik Год назад +1

      Can you elaborate? What if I got an e-commerce app with a cart?

    • @GVal98
      @GVal98 Год назад +7

      @@belkocik When a user is logged in, you store their cart on the server anyway. When adding an item, use useMutation to send a request to add item on the server and automatically refetch all items in the cart. When the user visits the site again, use useQuery to get all the items in the cart.

    • @belkocik
      @belkocik Год назад

      ​@@GVal98 What about if user is not logged in? How to handle the problem when a not logged in user added a few items to a cart and then logged in? The question is what if there are items on the server that he added previously when he was logged in? Fetch only the items from server and show them in cart or compare the items in local storage with the server's one and do what? :D How to handle the issue? Would love to see some code beacause I don't know how to do it :D

    • @arindam_chowdhury
      @arindam_chowdhury Год назад

      @@belkocik Either when adding items, you can ask the user to login to add items.
      Otherwise, if some items have been added to the localstorage, as soon as he logs in, add those new items to the server as well (need not update the existing items in the server)

    • @GVal98
      @GVal98 Год назад

      @@belkocik You can generate a guest id/session/token and use it in requests just like a regular user id. But the server must be ready for this and distinguish users from guests.
      As for the second question, you just do it like you did before with your state managment. I think it's up to you whether you want to combine items or just download from them the server.

  • @robinkehr1160
    @robinkehr1160 2 года назад +68

    Using an expression in the dependency array is something i probably would never have thought of! Seems like a super useful technique though! Thanks for that! Also, love zustand especially in combination with immer once you get used to the mental model!

    • @vitorisaia
      @vitorisaia 2 года назад +1

      I loved that also!

    • @deansacramone6270
      @deansacramone6270 2 года назад

      What do you mean "expression in the dependency array"? Where is that, I missed it.

    • @deansacramone6270
      @deansacramone6270 2 года назад

      @@vitorisaia Where is it, I missed it.

    • @robinkehr1160
      @robinkehr1160 2 года назад +1

      @@deansacramone6270 He starts talking about it at 6:50

    • @Messirobben047
      @Messirobben047 2 года назад +1

      React hook lint rule complains about having an expression in deps array. You would have to extract it to a variable and use that instead. Or excuse the rule there.

  • @elishashapiro7490
    @elishashapiro7490 2 года назад +9

    Simply great presentation. I've done some research myself about different libs available for state management, but most of the resources out there compare just a couple of libs. You on the other hand compared almost exhaustive list of state management libs and concepts, giving the ability to distill those concepts into different categories. This is an amazing work with a huge value that I don't belive I can get anywhere else in one single place.
    Great presentation!
    And I love that you've also added your personal views at the end, adding more flavor to it, that is also based on relational thinking and business consideration.
    Awesome content!
    Keep em coming...

    • @jherr
      @jherr  2 года назад

      Thank you! I really appreciate the thoughtful comment!

  • @ajeetchaulagain5425
    @ajeetchaulagain5425 2 года назад +7

    I have been developing react app for couple of years. But watching your videos makes me re-think about my prod code, and I definitely get some improvements and refactor in the code base !
    Man you are legend for preparing clear and concise content. Keep up the hard work ❤️❤️

  • @cryptus_neoxys
    @cryptus_neoxys 2 года назад +7

    The effort put into this single video is unreal 🤯

  • @rosenthalpiano
    @rosenthalpiano 2 года назад +6

    Would love to see a video on your point about business logic along with some examples of architectures/patterns that should be considered to keep it externalized.

  • @mandalorian99
    @mandalorian99 Год назад +1

    simply insane comparison. Im lost for words and the repo for free to go over it. You are a legend! I've been working as a full stack dev for a couple of years now, and yet only came across local and global state implementations. Hopefully with time and practice will get to the level of thinking in architectural way. Props for another great video

  • @CosteaMelniciuc
    @CosteaMelniciuc 2 года назад +5

    Actually fantastic work here, we're in the transition of deciding what state manager and model should we go into our business application, and it creates a lot of fuss and confusion, this video's very very interesting and really perfect timing for us :)

  • @johncmm9759
    @johncmm9759 2 года назад +6

    You are such a good teacher, thank you for sharing your knowledge with us. I love your calm demeanor and way of communicating ideas!

  • @m0hammedimran
    @m0hammedimran 2 года назад +4

    I just appreciate that you're are experimenting with your content. Great work.

  • @petrhavlik
    @petrhavlik 2 года назад +1

    I just came across to this video by a coincidence, but it is really good stuff! I am just surprised why it doesn't have more views, your presentation (as well as the code) is very clean plus the value I get from it considering the length of the video is excellent!

  • @jaricurty8906
    @jaricurty8906 2 года назад +3

    Hello Jack, I really appreciate your video quality and subjects you're generally covering. I had a topic that could be of interest to many JS coders; namely "How to set up a NPM module with typescript types and codes that are reused between different project we're working on". Maybe you've already covered it? In all cases, enjoy 2022! (PS: I totally share your API+ approach but with React-Location as router plus I tend to avoid any state manager but using React-Query and the React-Location search URL as a replacement)

  • @aleenaselegy
    @aleenaselegy 2 года назад +13

    Thank you for the excellent content! Can you do a video on the best practices to keep business logic separate from state management and api calls ? Maybe while using something like react query and redux toolkit?

  •  2 года назад +2

    Best overview of current state managers yet! Great work :)

  • @gzuzmark
    @gzuzmark 2 года назад +3

    Thanks Jack. This categorization is really helpful 🤘

  • @drewbird87
    @drewbird87 2 года назад +7

    Incredible how much work and how informative this video is. Thank you Jack, for all the value you share!

  • @naranyala_dev
    @naranyala_dev Год назад

    wow, you covered what most people don't think, thank you

  • @jcen1918
    @jcen1918 2 года назад +1

    Learning RTK Query for a job interview and your content has been super helpful!

  • @stevephuc5853
    @stevephuc5853 2 года назад

    thank you for marking this video.

  • @pekwind
    @pekwind 2 года назад +1

    just 1 minute into the video, another instant thumb up for the great job from Jack!

  • @MattHeslington
    @MattHeslington 2 года назад +1

    Love your style of teaching and explaining, Jack. Cheers

  • @fasolplanetarium
    @fasolplanetarium 2 года назад +1

    Wow, excellent information - thank you. I've been digging deeper into React after having used Vue professionally for the last two years. Such a comprehensive rundown of all of the various state management solutions in the React ecosystem is incredibly helpful. Even if I may not ever use all of them, I certainly appreciate better understanding what my options are.
    Looking forward to more of your content.

  • @karsongrady
    @karsongrady 2 года назад +2

    Great stuff, can't thank you enough. Happy new year, Jack

    • @jherr
      @jherr  2 года назад

      Happy New Year to you!

  • @emil0707
    @emil0707 2 года назад +1

    Incredibly clean explanation, thanks a lot

  • @LaforceM1991
    @LaforceM1991 Год назад +1

    Thank you for making this video. Saves me a bunch of time, but still alot to think about :-)

  • @abdelhameedhamdy
    @abdelhameedhamdy 2 года назад +1

    Awesome demo, I remember your writings about adobe flex few years ago what a memory, it is not strange to continue this success and the continuous learning and development journey, keep on Jack.

    • @jherr
      @jherr  2 года назад +1

      Ahhhh, Flex. Some good ideas there.

    • @abdelhameedhamdy
      @abdelhameedhamdy 2 года назад

      Yeah , I recall components and interfaces same concepts applied now, it was glorious days ...✨

    • @goonswarm007
      @goonswarm007 2 года назад

      Adobe flex. Good old days 😅

    • @nshen121
      @nshen121 2 года назад

      can Cairngorm puremvc robotlegs model works in react world?

    • @jherr
      @jherr  2 года назад

      @@nshen121 Wow, it's been a really long time since I heard about the Cairngorn framework.

  • @WillsB3
    @WillsB3 Год назад +1

    Thank you for such an excellent video Jack. Really informative 👍

  • @LaLoses
    @LaLoses 2 года назад +7

    A little question, it would be nice if you could explain a bit more about separating the business logic of the code source, because I cannot imagina a way of doing that.
    I'm going to check in the videos of the channel to see if there is one video about that :)

  • @derekdemaria6728
    @derekdemaria6728 2 года назад +2

    Great video Jack! Hope you're doing well!

  • @AbdelhameedG
    @AbdelhameedG 2 года назад +2

    Amazing tutorial, Thanks Jack.

  • @MrPlaiedes
    @MrPlaiedes 2 года назад +1

    I'm really enjoying Jotai. Great video, Jack!

  • @jasondavis87
    @jasondavis87 Год назад +1

    This video was really informative. Thank You!

  • @yoJuicy
    @yoJuicy 2 года назад +2

    Great informative content. Thank you for sharing. You break things down really well! Would love to see some intermediate level Nextjs stuff!

  • @worldclasscode1847
    @worldclasscode1847 2 года назад +1

    Hi Jack, I use React Context + React Hooks. Wow, you really covered the topic :)

  • @mikewilliams5571
    @mikewilliams5571 2 года назад +3

    34:15 unidirectional is easier for extendible builds also and Redux helps for immutable state changes with common practices

  • @nivb52
    @nivb52 2 года назад +3

    Thanks! great video as always, (seems also you can apply to editing job now 😉).
    I would love to see an example how to separate the business logic from react.
    - What parts you would put in a custom Hooks and what part will remain separated .
    I don't have a simple example of code to be a use case for that, but I will do my best to help if you want to make a video example.
    And talk about your new book, I would love to hear about it.

  • @j0hannes5
    @j0hannes5 2 года назад +1

    those graphics are spot on

  • @reiniermb
    @reiniermb Год назад +1

    great overview

  • @user-fg6ng7ej6w
    @user-fg6ng7ej6w 2 года назад +1

    great review + huge work done on github project. thx

  • @SterlingCobb
    @SterlingCobb 2 года назад +2

    Great Content. I prefer to use relay for both the API and state management if I have some type of api i am working with which is usually the case

  • @SamsButterscotch
    @SamsButterscotch 2 года назад +1

    Really really cool video, thanks for the guidance!

  • @srenhyer3895
    @srenhyer3895 Год назад +1

    Great work.

  • @mehdi-vl5nn
    @mehdi-vl5nn 2 года назад +1

    impressive ,i find it quite useful thanks for your effort

  • @borasumer
    @borasumer 2 года назад

    Great content, thank you. I personally use Apollo Client, React Hook Form and also Reactive Variables from Apollo client to handle the Client side state. I used to couple Apollo Client with React context, until Apollo came up with reactive variables, so I don't introduce another state management tool anymore, and just handle everything with Apollo Client.

    • @jherr
      @jherr  2 года назад

      Thank you for bringing this to my attention. It’s really cool to see that functionality in the Apollo client.

  • @AbhiVenture
    @AbhiVenture 2 года назад

    Great video and there’s a lot you covered I’m bit surprised that you didn’t cover Recoil

    • @jherr
      @jherr  2 года назад +1

      I did, actually.

    • @AbhiVenture
      @AbhiVenture 2 года назад

      @@jherr My bad and I have no idea how I skipped past Recoil that I was looking for :D. Nice and concise across the board review/intro to state management.👍

    • @jherr
      @jherr  2 года назад

      @@AbhiVenture No worries man. BTW, if you like Recoil you will LOVE Jotai.

  • @mahdikhashan
    @mahdikhashan Год назад +1

    wow, that was great!

  • @santosharakere
    @santosharakere 2 года назад +1

    Excellent demo. Thanks.

  • @براءسامي-ث9ه
    @براءسامي-ث9ه Год назад +1

    Nice hard work
    Thanks !!

  • @betterkeiii
    @betterkeiii Год назад +1

    saved my messed up brain 🤯 really thanks

  • @aziaev
    @aziaev 2 года назад +1

    Thank you very much!

  • @carsend7412
    @carsend7412 2 года назад +1

    Really like the video!
    Should be worth noting that while Akita is still maintained, the developers started a new project called Elf to use instead. Reasoning just they wanted to do more updates but it would break too many apps using Akita.
    Seems like long term Elf is their go to.

    • @jherr
      @jherr  2 года назад

      Cool, I'll check that ou!

  • @hikarukun5126
    @hikarukun5126 Год назад

    I love working with MobX but most devs prefer Redux and now when you showed how Redux Toolkit works and how less boilerplate it needs, I believe I will choose it as the main one (dependent on business needs of course)

  • @agusgarcia9509
    @agusgarcia9509 2 года назад +3

    To me, the best state management library is SWR!

  • @shubhankarvalimbe5286
    @shubhankarvalimbe5286 11 месяцев назад

    You're a React God! Please keep making content! I'll check your page out. If you haven't already please make videos on Svelte and NextJS!!

  • @grugbrain
    @grugbrain Год назад

    Jack glances at the product requirements and picks one state manager and never regrets it. He is familiar with every state manager out there. 🤯

    • @jherr
      @jherr  Год назад

      Mostly just Zustand nowadays.

  • @shubhamlatiyan7972
    @shubhamlatiyan7972 2 года назад +1

    Always loves your videos, Jack.

  • @succatash
    @succatash 2 года назад +1

    Your a stud, keep doing this quality content and you will hit 1million subs.
    Only suggestion, some shorter "starter" content explaining different topics would be nice.
    I wish I understood TS, need to learn it. Got the basic understanding of it.

    • @jherr
      @jherr  2 года назад

      I do have an entire series on TS ruclips.net/p/PLNqp92_EXZBJYFrpEzdO2EapvU0GOJ09n

  • @victorlongon
    @victorlongon 2 года назад +1

    Nice video as usual :D! I can see some very specific use cases for something like a state machine, but apart from that i have a really hard time seeing why i would need anything else than a unidirectional or atomic state manager, they are so simple to understand and pretty much cover anything i would need. Also as you mentioned i think today with stuff like apollo, react query, urql and react own context i would think twice before bringing a state manager to an application. You can go a very long way without one

    • @jherr
      @jherr  2 года назад +1

      I would add Bi-Directional state managers, like MobX to that list. Honestly, the only state manager model IMHO is kind of optional is the event based systems that sit on top of RxJS. Unless you are already using RxJS I would avoid those.

    • @victorlongon
      @victorlongon 2 года назад +1

      @@jherr I don't know i am not a big fan of the 2-way streets tbh, but really is just my opinion 😃

    • @jherr
      @jherr  2 года назад +1

      @@victorlongon I like them because I like the spreadsheet paradigm. If i look at a value then update me. If I don't then don't. Though I think the Atomic model better captures the dependency graph aspect of the spreadsheet paradigm.

  • @AK-vx4dy
    @AK-vx4dy 2 года назад +1

    Impressive amount of work 👏

  • @lutzruhmann7162
    @lutzruhmann7162 2 года назад +1

    Hello, very valuable Overview, Thank You!

  • @darksxd
    @darksxd 2 года назад +1

    This is so useful, fantastic Jack as always great content. I love the screen annotations you are doing now. Which software are you using for that effect?

  • @FilipeCosta84
    @FilipeCosta84 2 года назад +2

    It gives a limited overview about the possible stores touching mostly on APIs styles, but it misses 3 important topics IMO:
    - Performance - it's just slightly touched in 2 cases (prop drilling, and context API) but never compared
    - Async complexity ... on Redux - the Redux `fetchNames` complexity is ignored, while it's likely the worst part of Redux (and better in any other library)
    - Mutability vs Immutability - which might be a deal-breaker
    Thanks!

  • @edgarabgaryan8989
    @edgarabgaryan8989 2 года назад +3

    cool video! thank you Jack! I can't convince myself to try Akito. too much boilerplate. also classes and decorators are intimidating

    • @jherr
      @jherr  2 года назад +1

      Sometimes it's worth giving stuff a try just to get a sense of the style of it.

  • @yashiel
    @yashiel 2 года назад +1

    This is really helpful, thank you

  • @trenthm
    @trenthm 2 года назад +1

    Great video. Thanks!

  • @vedmack13
    @vedmack13 Год назад

    great one, thanks!!!

  • @nicolash810
    @nicolash810 2 года назад

    Extremely good and informative video. This is a good domain comparison that actually helps (instead of 1vs1). From one side I dislike the idea of not having a standard, official, global state. On the other side I like the amount of different approaches.
    The main problem I see is that means using the library that fits the style instead of use case/performance. Without knowing each library in depth it's almost impossible to know if an application would benefit from one or another.

    • @jherr
      @jherr  2 года назад

      What I recommend is that if you are looking at building out a new project and a change in state manager is on the table (it's often not) then spend the time POC'ing a few of these in scenarios that you think are demonstrative of the use cases you'll have, and then see if how they work in those scenarios.

  • @dmitriybraginets6750
    @dmitriybraginets6750 2 года назад +1

    Thanks a lot for the great video!

  • @Messirobben047
    @Messirobben047 2 года назад +1

    Thanks for the great content Jack. Can you may be create a video on how would you decouple business logic in a react app?

  • @abhinandankhilari9729
    @abhinandankhilari9729 2 года назад +1

    Jack, you say principal full stack engineer. Would like to see some stuff focused on back-end as well 🙂. Nice video by the way.

    • @jherr
      @jherr  2 года назад +1

      I just did one on Wundergraph about GraphQL API architecture, you should check that out.

  • @SnOrfus
    @SnOrfus 2 года назад +1

    Jack, I only found you recently, but absolutely love your stuff! Thank you for making it!
    I do have 1 question: how do you use pen input to draw on the stream/content?

    • @jherr
      @jherr  2 года назад +1

      I use a cheapy Gaomon drawing tablet, that I actually find a LOT more reliable than the Wacom stuff. It was an HDMI port on it so I can duplicate the screen across both. Then I use ScreenBrush to do the drawing.

    • @SnOrfus
      @SnOrfus 2 года назад

      @@jherr thanks for taking the time to reply! Much appreciated!

    • @jherr
      @jherr  2 года назад

      @@SnOrfus That's what I'm here for. :)

  • @learntounlearn2500
    @learntounlearn2500 2 года назад +1

    Zustand n react query used together are the best

  • @techviking23
    @techviking23 2 года назад +1

    this is a masterpiece

  • @eleah2665
    @eleah2665 2 года назад +3

    No sucking up intended here but do we all owe Jack a cup of coffee yet? Traversy is still the overall king, but Jack is the king of react state. Not only does he put all this in a nice tidy package for you he also 1) has a cool new-ish goatee, 2) has a cool new white board, 3) didn't mention Pokemon once.

    • @jherr
      @jherr  2 года назад +1

      Hahah. All Pokemon next week! (just kidding)

  • @serg472
    @serg472 Год назад

    Good overview, but I was hoping to see how these libraries are handling complex states, that's where all the troubles start in vanilla react and when you start looking for alternatives. For example let's say you have a state with the dynamic number of button groups, the number of buttons in each group is also dynamic, and each button's state is an object (color, label, etc). Now you want to change a color of button X inside group Y, and you want only that button to re-render. Something like that, where default shallow state comparison stops working and it becomes very difficult to surgically change state and re-render individual components.

  • @berleytrails
    @berleytrails 2 года назад +1

    Thanks very much for sharing

  • @unnoticedspacegoat8537
    @unnoticedspacegoat8537 2 года назад +1

    Great content!!

  • @SantoLucasST
    @SantoLucasST 2 года назад +1

    Just found out hookstate and was hoping to see it here. It seems to be the easier to implement, at least for me.

  • @mouneyrac
    @mouneyrac 2 года назад +1

    This is so good - thank you :)

    • @mouneyrac
      @mouneyrac 2 года назад +1

      By the way Jack, did you do any specific courses for prodcuing such great RUclips videos or you just learn on the go?

    • @jherr
      @jherr  2 года назад +1

      There are some really good A/V RUclipsrs out there that cover cameras/mics/technique/etc. Though for educational content like this the old adage applies; content is king. Have decently produced content on topics people want to learn about and you'll get views.

  • @revold6463
    @revold6463 2 года назад

    Single best summary of React State Management on the internet, thank you!
    I am currently switching a lot between Backend and Frontend-work and I was wondering - what is your take on combining Frameworks like React with Clean/Hexagonal/Onion/...-Architecture Principles for Business Logic? (aka, can you please make a video about this particular aspect? :))

    • @jherr
      @jherr  2 года назад +1

      I'll add it to the list of requests. Hexagonal architecture is fine. I think Clean and Onion are as well, but I'm not sold on "Clean" since it seems like just bunch of small PR issue fixes and not really a coherent architecture, IMHO.

  • @ahmedChebilahmed19chebil
    @ahmedChebilahmed19chebil 2 года назад +2

    here is some frontend video content i love to see

  • @mahmoudvega25
    @mahmoudvega25 2 года назад +6

    what about zustand? I find it really easy to use but I used it in small-medium projects. How does it compare to redux toolkit and in you opinion why would you prefer redux toolkit over zustand?

    • @jherr
      @jherr  2 года назад +1

      Check out the code. Zustand is awesome.

    • @JLarky
      @JLarky 2 года назад

      @@jherr what about jotai? :)

  • @butterfly7562
    @butterfly7562 2 года назад +1

    In addition to react-query, swr is also a good choice!

    • @jherr
      @jherr  2 года назад

      Absolutely!

  • @ashtonmiddlefield9819
    @ashtonmiddlefield9819 Год назад +1

    Awesome! Could you do a tutorial about using signals from preact, please?

    • @ashtonmiddlefield9819
      @ashtonmiddlefield9819 Год назад

      Hmmm looks like the signal repo is too quiet. I guess we can skip it.
      it is interesting that signal looks like observable with ease and totally outside jsx (good for testing all by state itself, like a node in the browser)

  • @עומרפריאל
    @עומרפריאל Месяц назад

    Thanks, is was big help

  • @joeyywill1234
    @joeyywill1234 2 года назад +1

    You're an absolute don!

  • @mortezatourani7772
    @mortezatourani7772 2 года назад +1

    Really great stuff. Thanks
    Two questions though:
    1. Do you know any context like library that's ecosystem agnostic and works with VanilaJS as well?
    2. Why you favor React hook form over Formik?
    I couldn't find any superiority or benefit in RHF but the burden of creating so many refs.

    • @jherr
      @jherr  2 года назад +1

      Most of these libraries support external non-React access. But IMHO, what you would be looking for is a library that is not bound to React directly. But which can be can be bound to a React app using hooks. Redux meets that bill, as does MobX, and Effector, as do some others. Some of the newer, lightweight state managers, like Recoil, Jotai, Valtio, Zustand are directly bound to React. So you need to bring in React even if you don't use it.
      As for form handlers. personally, I lump those in with systems like React-Query, and it's totally valid to just use React hooks + (formik/react-query/etc.) if that meets your needs.

    • @mortezatourani7772
      @mortezatourani7772 2 года назад

      @@jherr Thanks

  • @ibrahimkanber5794
    @ibrahimkanber5794 2 года назад +1

    Thanks for awesome content

  • @nickschmitt8594
    @nickschmitt8594 2 года назад +3

    I like XState because when I tell laymen I'm building finite state machines they think I'm smart

    • @jherr
      @jherr  2 года назад +1

      It does sound very cool.

  • @guseynismayylov1945
    @guseynismayylov1945 4 месяца назад +1

    window - is the best state manager

  • @magne6049
    @magne6049 Год назад +1

    31:44 Why did you put FSM / XState as not possible to execute outside the React context (Global)?

    • @jherr
      @jherr  Год назад +1

      There was a subtlety, and it might be fixed now, with XState, that the useMachine hook instantiated a machine on its own. So you can instantiate another version of the same machine and connect to it externally. But if you use useMachine you'll be using the instantiation of the machine that it creates.

  • @loia5tqd001
    @loia5tqd001 Год назад

    16:10 Looks like there's a tweet recently stating that it's wrong. But can I know, whether it's because React has just improved Context recently, or it works like that the whole time? and by "works like that" I mean if using correctly will only rerender the necessary components that subscribe to that context?

  • @ethanfung1413
    @ethanfung1413 2 года назад +3

    Could you expand on the concept of separating business logic as a custom library from React? I think I agree with the concept, but what is an example of what that might look like?

    • @jherr
      @jherr  2 года назад +1

      Imagine you have a chrome extension and a nextJS web app that are in a mono-repo and they both calculate taxes with some complex business logic. I would use the mono-repo functionality to extract that tax calculation logic into its own package and then have independent jest tests for that package.

    • @Messirobben047
      @Messirobben047 2 года назад

      @jack, but mostly you would'nt have such apps. Most of the the times you have a single app which has business logic. How would you go about separating logic in that case?

    • @jherr
      @jherr  2 года назад +1

      @@Messirobben047 How, or why? How is I'd use something like Turborepo or NX to factor out the business logic into its own library. But I'd only do that if it was almost a guarantee that we were going to reuse that logic in another context, either in another web application, or in a React-Native app, etc.

  • @shashikantmaharshi9294
    @shashikantmaharshi9294 2 года назад +1

    Thanks @jack for covering this topic. May you let me know which vscode theme you have used here?

    • @jherr
      @jherr  2 года назад +1

      Night Wolf [black] and Operator Mono for the font.

  • @sraxler
    @sraxler Год назад

    I did a udemy course for a full stack project where the instructor used MobX and since then I have not been able to use other state management tools to that extent. I want to use redux toolkit but I am not confident using it.
    Many say that redux is good for large scale applications but I am more familiar with MobX so I am not sure what to use for a professional project.

  • @sikor02
    @sikor02 2 года назад +1

    What? How many? Damn... I knew maybe like 3

  • @dev1876
    @dev1876 Год назад

    I liked it, but you need to take into account how easy they are to unit testing, it is an important factor in teams that do a lot testing or TDD, it is not the same developer experience when test mobx, redux, or xstate.
    Do you have any video about it?
    Thanks and Greetings

  • @RubberDuckCoding
    @RubberDuckCoding 2 года назад +1

    VERY NICE!

  • @YakovL
    @YakovL 3 месяца назад

    Thanks for the research! I have to admit, it's not that easy to follow all the differences and especially what are the real reasons to use one of the 4 flavours (not just personal preferences).
    1. For instance, which of these models make it harder to debug complex apps? (do observers/subscribers cut us of a way to see what caused a specific change? ..)
    2. Do you think it's safe to judge about the amount of ceremony by the simple example provided (extrapolate to large apps),
    3. or may be you see some differences in scalability and decoupling logic modules?
    4. Is there any performance differences to be aware of? They are probably neglectable compared to not using a provider for global state that causes re-renders per any value change, aren't they?