Как правило, в данном случае это 2 разных приложения.
Клиентская часть - vue, react, angular, swelte и др.
Серверная часть - laravel, django, yii2, RoR, Spring и др.
Общение между сервером и клиентом происходит при помощи запросов к API через например, axios или любые другие библиотеки для выполнения http запросов.
Если пользователь перейдёт по ссылке, то не будет перезагрузки страницы?
То что нет перезагрузки страницы, не говорит о том, что не был выполнен запрос. Например, выполняется GET запрос и первый компонент заменяется вторым. Если при подключении компонента нужно выполнить запрос к серверу (к API) и например, получить список объектов, то запрос в свою очеред тоже делается