Идеальный путь:
Для случая, когда у Вас уже есть все необходимые размеры изображений:
picture
Если их нет, то на фронте ресайзить картинки не надо.
У вас на бэке должен быть ресайзер картинок, который по урлу отдаёт картинку определённого размера.
Например:
https://mySite/assets/img/640/480/picture.png
- возвращает картинку с оригинальным размером 640х480.
А на фронте, во vue в Вашем случае, Вам тогда просто нужно будет написать миксин или компонент картинки, в который нужно будет передавать размеры картинки и её название, и чтобы возвращался либо корректный путь до картинки, если это метод миксина, либо картинка с правильным урлом.
И в конечном итоге это опять же нас возвращает к picture.
Нормальный путь(Если Вы занимаетесь оптимизацией графики):
Пользуйтесь CSS media - на брэйкпоинтах меняйте картинке ширину и высоты.
Плохой путь:
Вешайтесь на ресайз окна и подменяйте атрибуты ширины и высоты для картинки.