It is best practice that you don't put any logic in your view files, other then maybe simple if's or loops.
A Viewmodel (or Presenter in more general OO terms) is a way to abstract away any view specific logic from the view, without having to put it in the controller. That would be bad practice too, as the logic is related to the view, and not the controller.
When I speak about View logic you can think about stuff like converting object structures to simple array's you can loop over, fetching array data to populate drop-downs, translations, conversions, formatting using sprintf()'s, etc.