In my opinion, the best way to building web User Interface is separate the state and the UI. This is what Elm Architecture dose. It separates every elm program into Model, Update and View parts. It’s good. But I am not familiar with functional programming, so do many web UI developers.
Though I am not familiar with functional programming, I always learn a lot from it. I love FP because it is a good tool to write less bug and write more maintainable code. This is why I love React too. Every UI component can write as a function of state ((state) => UI), which let you test the UI more easy, just pass different state and expect the return value.
Using MobX and React means you get all of it. MobX will take care of the state, React will take care of the View render. And then my framework cans came out.