Суть компонентного подхода в следующем:
1) Логика и представление отделяются друг от друга
2) Функционал разделяется на слабозависимые и переиспользуемые компоненты
3) Компоненты компонуются в различных комбинациях, реализуя готовое приложение
Поэтому ответ на ваш вопрос следующий:
1) Разбить всё на максимально простые (но не проще) переиспользуемые компоненты
2) Объединить их в более крупные компоненты и самые крупные из них объеднить в корне приложения (файл в котором запускается корневой экземпляр Vue) в готовое приложение