Model-View-ViewModel for React