I am no a JavaScript expert - I started playing with frontend (jQuery doesn&#x27;t count) only recently. 
The only problem I have with your approach is that the model might mutate. For small projects it is ok - but for larger ones overriding state from many places generates pesky race conditions that are source of all evil.
I am not advocating for react as well - to me it is just a view layer. Combining it with redux, flux or any other library concept makes everything complex. And add javascript build tools on the top of that (good javascript sucks). 
As a mostly &quot;backend&quot; developer (python, erlang, elixir) I really started to like ELM (<a href="http:&#x2F;&#x2F;elm-lang.org&#x2F;docs#complete-guide" rel="nofollow">http:&#x2F;&#x2F;elm-lang.org&#x2F;docs#complete-guide</a>) which solves all the problems as a language.<p>1. Language forces you to model-view-controller style<p>2. Language makes the model immutable<p>3. Language forces you to use correct types which saves a lot of trouble.<p>On the other hand, I a new to frontend - so I might be wrong.