Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Можно ли на Vue.js делать многостраничные сайты?

ИнтернетСайты+1
Роман Малютин
  ·   · 1,4 K
Пишу код, интересуюсь наукой, консультирую  · 2 сент 2022
Если кратко, то - конечно, можно. 
Но давайте все-таки разберемся какие варианты реализации этой задачи есть.
Первый вариант - у вас не SPA (Single Page Application), а именно отдельная страница под каждый серверный роут. Страница целиком приходит с сервера (рендерится заново) и Vue каждый раз при переходе  инициализируется. Этот вариант, хоть и возможен, но он имеет ряд нюансов. Да, у вас не будет проблем с SEO, но вы не сможете полноценно работать с VueX и роутингом, а для крупных проектов это важно.
Второй вариант - у вас все-таки SPA и Vue инициализируется единожды, роутингом управляет Vue Router и вы можете свободно использовать асинхронное хранилище (VueX). 
Все бы хорошо, но тут появляются новые нюансы -SEO. Если вы разрабатываете сервис, который требует авторизации на первом же экране или для внутреннего использования, то вы вероятно, не будете задумываться о SEO, но если у вас есть публичные страницы, то без SEO не обойтись. 
К счастью, есть несколько путей решения - SSG и SSR. Это перендеринг (SSG) - по сути генерация статичного сайта или же выполнение кода на стороне сервера (SSR) и возвращение уже готовой разметки. 
Сама настройка SSR требует определенный навыков, но и тут есть решение -  Nuxt.js, который предлагает на этапе создания проекта выбрать как мы хотим работать с кодом - на клиенте, на сервере или универсальный вариант. Nuxt.js, по сути, надстройка над Vue, там очень многие рутинные моменты автоматизированы. 
Начнем с того, что там есть структура папок, которая уже заточена под многостраничность и новая страница создается и регистрируется в роутере автоматически. Все что вам надо - просто создать файл в папке pages. 
К примеру, если создали файл test.vue, то моментально появится роут /test. Хотите принимать параметры, создайте папку test и в ней файл _id.vue , и тогда появится динамический роут /test/:id . Можно даже обрабатывать динамически роуты с бесконечной вложенностью. То есть такой путь /catalog/nakopiteli/ssd/4 и /catalog/bitovaja-tehnika/dla-kuhni/krupnogabaritnaya/holodilnik/10 могут вести на одну страницу. Для этого надо создать папку catalog а в ней файл _.vue и в этом файле обрабатывать запрос. 
А как же дело обстоит с SEO? Тоже очень просто. У вас теперь есть поля для указания мета-тегов в страницах, которые созданы в папке pages примерно так.
<script>
export default {
  head: {
    title: 'Home page',
    meta: [
      {
        hid: 'description',
        name: 'description',
        content: 'Home page description'
      }
    ],
  }
}
</script>
Это лишь крупицы из возможностей Nuxt, которые непосредственно связаны с темой вопроса, но если вы изучите документацию, то поймете, что этот инструмент дает очень много преимуществ и SPA уже не выглядет чем-то страшным и пугающим SEO-специалистов.
В заключении скажу, какой вариант работы со Vue выбрать - вам решать, но ответ - однозначно можно делать многостраничные и большие проекты и при этом очень комфортно.
Удачи!
Мои игры на Яндекс ИгрыПерейти на yandex.ru/games/developer
Мы делаем сайты для бизнеса  · 19 янв 2021
Отвечает
Evgeniy Lenosh
Да можно! Только встречный вопрос, зачем? Vue используется для веб приложений, виджетов, калькуляторов и так далее то-есть то с чем взаимодействует пользователь. А делать рендеринг в Single page разных страниц сайта можно, но... Читать далее
Сайт это не золотой ключик, а инструмент для бизнеса!Перейти на webemmet.pro