5 ms·
I switched to MobX and can't be happier. Performance is never a problem and everything is just simpler and easier to understand. I think you should give MobX a
by msoad 9y ago
I switched to MobX and can't be happier. Performance is never a problem and everything is just simpler and easier to understand. I think you should give MobX a shot.
- beefsack 9y agoIn my experience, Redux seems to fit better with those coming from a FP background, and MobX seems to sit well with those with OOP backgrounds.
- acemarke 9y agoYep, absolutely true. Preethi Kasireddy did a fantastic presentation at ReactConf comparing Redux and MobX [0], Robin Wieruch wrote a good article comparing them last year [1], there was a Reddit thread with good discussion as well [2], and I have links to more comparisons at [3]. They're different tools taking very different approaches to solving the same kinds of problems, and they definitely appeal to different developers. [0] https://youtu.be/76FRrbY18Bs https://youtu.be/76FRrbY18Bs [1] http://www.robinwieruch.de/redux-mobx-confusion/ http://www.robinwieruch.de/redux-mobx-confusion/ [2] https://www.reddit.com/r/reactjs/comments/4npzq5/confused_redux_or_mobx/ https://www.reddit.com/r/reactjs/comments/4npzq5/confused_re... [3] https://github.com/markerikson/react-redux-links/blob/master/mobx-tutorials.md#mobx-and-redux-comparisons https://github.com/markerikson/react-redux-links/blob/master...
- acjohnson55 9y agoYep. Redux does a great job of pushing mutation out of your application logic and into the library machinery, much like React does. Together, you get logic that's remarkably pure. It makes for an application that's dead simple to debug. I've never tried MobX, but it looks pretty impressive too. I can imagine it working really well if you have the discipline to not leak your mutations all over the place.
- aidos 9y agoMobX (in strict mode) forces you to annotate your mutations (via the @action decorator). MobX is useful mostly as the data model / selector part of redux. It does an awesome job of it. Once you've defined your core data model, you can create layers of computed properties and transformations out to your view. The view then rerenders in a really optimal way. Where redux shines is the prescriptive nature. The layout of a redux app is fairly well defined at this stage and there are "right" and "wrong" places to put (and look for) different types of code. With MobX there's still no clear way to layout your application, so, as you say, you need to be more disciplined with your approach.
- shados 9y agoRedux isn't really that prescriptive (and it's a problem). Since middlewares let you do pretty much anything, people will do the silliest things. Vanilla Redux that somewhat closely mimics the Elm architecture is fantastic at it, but average Redux apps in the wild are...mediocre at best.
- pknopf 9y agoAlso, with Mobx, you get absolutely perfect rendering update performance. You literally can't do it any better, thanks to observables. You literally can't fuck up rendering performance, provided you don't have a single huge component the renders your entire state.
- bpicolo 9y agoI've found the opposite. Coming from FP like Clojure, Redux just feels unwieldy in comparison, whereas MobX feels like it fits the language/problem better (but has plenty of it's own issues)
- shados 9y agoYup. Redux also fits better people who like more vanilla code at the expense of verbosity. MobX fits better people to prefer terseness. Redux falls apart pretty hard when people start layering sugar and abstractions on top. It's my pattern of choice, but for teams that insist on abstracting the Redux boilerplate away, I steer them to MobX.
- zbuttram 9y agoAs others have said, it does allow you to get much messier with your code than the rigid structure of Redux so you have to be more careful with your structure. My first MobX app was (and in some ways still is) a bit of a mess in spots. That said, my subsequent apps have gone much better and I definitely prefer it to Redux, but I can see the appeal of Redux's more structured approach.
- jasdeepsingh 9y agoSame thoughts here about MobX. I tried my best to like Redux from my early on React days but could never get myself to like it, Mobx on the other hand has been a way more pleasurable and productive experience. I don't know or understand much about the pros and cons around Immutability and FP paradigm of Redux, but I sure can ship my apps faster and quicker using Mobx - which for a small bootstrapped startup like mine could mean the difference between life and death. After having used Mobx for more than 10 months now, I still have to find areas that I dislike about Mobx.
- solidr53 9y agoThe author of mobx, Michel Weststrate, also created something called MST (short for mobx-state-tree), which was a kind of answer to redux. A direct quote from https://github.com/mobxjs/mobx-state-tree https://github.com/mobxjs/mobx-state-tree > mobx-state-tree is a state container that combines the simplicity and ease of mutable data with the traceability of immutable data and the reactiveness and performance of observable data.
- pknopf 9y agoI love Mobx. Out of the box, you get absolutely perfect rendering update performance. You literally can't do it any better, thanks to observables.