<story><title>Redux – Not Dead Yet</title><url>http://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet/</url></story><parent_chain><item><author>ralusek</author><text>I&amp;#x27;ve been using mobx-state-tree for the latest couple of projects after Redux. I like them both, but I prefer mobx-state-tree for a handful of reasons.&lt;p&gt;1.) There is an immutable data store with action-driven changelog, just like Redux.&lt;p&gt;2.) The immutability of the data store is baked in and enforced. The necessity to provide changes to the data store within an action is baked in and enforced.&lt;p&gt;3.) Having actions baked in as methods rather than having to create &amp;quot;action creators which in turn dispatch actions&amp;quot; is a nice reduction in boilerplate.&lt;p&gt;4.) Being able to add action listeners AND state listeners are baked in, and can be done at any level of the state&amp;#x27;s depth. To watch state changes in redux, for global changes not related to a particular component, I had to write:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ralusek&amp;#x2F;redux-store-watch&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ralusek&amp;#x2F;redux-store-watch&lt;/a&gt;&lt;p&gt;5.) Mobx&amp;#x27;s observers on react render methods makes the renders far more efficient than what could be achieved with react-redux easily, without really ensuring that the props being passed in are as granular as necessary or shouldComponentUpdate is correctly identifying state changes. In mobx, the most granular access of the lowest level state can be detected within a render method, and only when that very specific value is replaced is the component rendered.&lt;p&gt;6.) Computed values on mobx-state-tree are baked in without the need for something like reselect&lt;p&gt;I like Redux, I enjoy working on projects that use it, but I think that I think I&amp;#x27;d have to admit that I prefer mobx-state-tree.</text></item></parent_chain><comment><author>joostdevries</author><text>We&amp;#x27;ve been using mobx-state-tree too. What I like is that it&amp;#x27;s easier to gain an understanding of the moving parts of my application; how actions, derived data and data work together. On the other hand the support for Typescript is a bit clunky and leads to slow compilation. Mitigating the compile time leads to a bit of boiler plate.</text></comment>
<story><title>Redux – Not Dead Yet</title><url>http://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet/</url></story><parent_chain><item><author>ralusek</author><text>I&amp;#x27;ve been using mobx-state-tree for the latest couple of projects after Redux. I like them both, but I prefer mobx-state-tree for a handful of reasons.&lt;p&gt;1.) There is an immutable data store with action-driven changelog, just like Redux.&lt;p&gt;2.) The immutability of the data store is baked in and enforced. The necessity to provide changes to the data store within an action is baked in and enforced.&lt;p&gt;3.) Having actions baked in as methods rather than having to create &amp;quot;action creators which in turn dispatch actions&amp;quot; is a nice reduction in boilerplate.&lt;p&gt;4.) Being able to add action listeners AND state listeners are baked in, and can be done at any level of the state&amp;#x27;s depth. To watch state changes in redux, for global changes not related to a particular component, I had to write:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ralusek&amp;#x2F;redux-store-watch&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ralusek&amp;#x2F;redux-store-watch&lt;/a&gt;&lt;p&gt;5.) Mobx&amp;#x27;s observers on react render methods makes the renders far more efficient than what could be achieved with react-redux easily, without really ensuring that the props being passed in are as granular as necessary or shouldComponentUpdate is correctly identifying state changes. In mobx, the most granular access of the lowest level state can be detected within a render method, and only when that very specific value is replaced is the component rendered.&lt;p&gt;6.) Computed values on mobx-state-tree are baked in without the need for something like reselect&lt;p&gt;I like Redux, I enjoy working on projects that use it, but I think that I think I&amp;#x27;d have to admit that I prefer mobx-state-tree.</text></item></parent_chain><comment><author>johnwheeler</author><text>React ecosystem noob here. To point #5, I remember reading that MST has some overhead over Mobx, does it come into play with these renders?</text></comment>