Model-View-ViewModel (MVVM) is a client-side design pattern . It guides the structure and design of your code to help you achieve “Separation of Concerns.” Implementing MVVM requires a bit of a mind-shift in the way you think about the functionality of your application.