Независимо от того, используете вы flask или любой другой фреймворк или пишите без оного, spa приложение принято разделять на 2 независимые части: frontend и backend. Первое - это html css и js (vue, vue-router), а второе - сама серверная логика. Данные следует получать при помощи асинхронных(ajax) запросов к backend. То есть, backend, в данном случае выступает как независимый api.
Например, вы хотите написать hello world, получив данные с сервера.
- Создаете роут с путем /example во vue-router.
- В flask'е создаете такой же роут и обработчик для него, который будет возвращать данные в формате json.
- Посылаете ajax-запрос через js (Например, с использованием http-клиента axios, он наиболее популярен), принимаете данные, выводите.