Как уже сказали, можно использовать vuex, он будет хранить все данные и взаимодействовать с бэкендом. Ваши компоненты будут брать/передавать данные оттуда.
Если не хотите с ним заморачиваться, вы можете например в корневом компоненте осуществлять взаимодействие с сервером, и далее данные распихивать по компонентам - профиль, пользователи, сообщения, что-то еще. В вашем варианте однозначно нужно разбивать, даже потому что, если вы сделаете все в одном это будет очень большой файл, с которым будет тяжело работать и всякое изменение будет доставлять боль и страдание)