It's very simple: you need a way to safely share state between different components. When you are using the component's native state, your view will re-render upon every call to setState() and thus will reflect your changes. But if you have a service (or store, name it as you wish) that holds your shared state, who will update all the views when that state changes? So it all start and end with making your views reactive to changes in a shared state . One way to tackle this problem is passing the shared state from the root of your app to your children via props. But this could be cumbersome if you have a complex and deep nested hierarchy. Another way is to use Redux, but in my opinion Redux is wayyyy over-kill for this simple task. I'v created what I think to be the most simple, clean and straight-forward state management library out there : github.com/Niryo/controllerim