Можно пойти сложным путем - сделать mpa в котором с сервера передается шаблон для корневого компонента vue-приложения и средствами php в него подсовывается json с данными наполнения:
<div id="#app" :input='<?php echo json_encode($data); ?>'>{{ input.something }}</div>
, затем уже на клиенте монтируется vue-приложение (с пропсами для входящих данных) и рендерит в шаблон (прилетевший с сервера или можно передать дальше во вложенные SFC) данные. Тогда seo будет чуть лучше (ибо начальные данные для рендера будут получены с сервера).
чтобы у пользователя не моргало шаблоном, можно скрыть данные через
https://vuejs.org/api/built-in-directives.html#v-cloak
Такой подход достаточно удобно использовать, например, с laravel