Как организовать ленивую загрузку во vue.js?
Никогда не работал с Vue, только быстро просмотрел документацию. Подозреваю, что вам поможет заворачивание компонента в элемент keep-alive
Варианта всего 2 - либо клиентское, либо серверное кеширование. 
В первом случае работу с api вынести в отдельный сервис (если это еще не сделано) и делать проверку на наличие данных перед запросом, либо использовать vuex для хранения данных.
Во втором - кеширование на стороне сервера с учетом ETag или last-modified заголовков.