Products and services usually start with a set of user needs which are then translated into screens (and other things) that meet those needs.
The screens are translated into frontend code and while that’s all happening we may try to find the best way to split up the pieces into components.
Once that’s done, it’s time to integrate data and logic into the templates for the user to actually interact with.
The object that contains the data and logic is called a view model — it’s a model designed for the view.
We can’t design a view-model without first understanding
See original post