It&#x27;s actually fairly similar in an idiomatic Redux app.<p>&quot;Lets say you have a User. You want to display information about the user in three different places in the user interface. With Redux this is simple. You have a single User store and three different containers that each receive the source model as inputs, transform it using connect&#x2F;reselect, and then passes it on, along with action creators to change the data, to the underlying components.  Any change in the User model propagates down to through the containers to the components. If you edit the user from one component it updates the store and then the components. Changes then cascade back down so that all three containers update if needed. Very simple.&quot;<p>Sounds familiar, no?  The big difference is that instead of editing the data you&#x27;re passed directly, and having it magically update everywhere, you&#x27;re passed an immutable User object <i>and</i> an updateUser() function, which you call to edit the object.<p>But the same distinction between your data, the view, and the intermediate layer that transforms the data for the view is very much present.