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

Стас Орлов React и Vue
3.8k
6

Изучаю Vue, везде показывают SPA приложения. А мне нужен обычный многостраничный сайт - главная, о компании, услуги, контакты. Каждая страница с отдельным URL, чтобы SEO нормальное было.

Это вообще реально на Vue или он только для SPA? Может тогда лучше на чистом JS + какой нибудь шаблонизатор?

Решение
49
Участник • 4 ответа

Vue отлично подходит для многостраничников. Два основных подхода:

1. Vue как библиотека (без сборщика)

Подключаешь Vue через CDN на каждую HTML-страницу и инициализируешь отдельные компоненты где нужно. Классический MPA, Vue только для интерактива.

<script src="https://unpkg.com/vue@3"></script>
<div id="app">{{ message }}</div>
<script>
  const { createApp } = Vue
  createApp({ data() { return { message: 'Hello' } } }).mount('#app')
</script>

2. Nuxt.js с SSG/SSR

Это фреймворк поверх Vue. Делает статическую генерацию (SSG) или серверный рендер (SSR). Каждая страница - отдельный файл в папке /pages, роутинг автоматический. SEO идеальное потому что HTML рендерится на сервере.

Для корпоративного сайта на 5-10 страниц - бери Nuxt с nuxt generate. Получишь статику которую хоть на GitHub Pages выложи.

Аватар Стас Орлов

Nuxt это то что нужно, спасибо! Пойду разбираться

25
Участник • 2 ответа

vue-router поддерживает history mode - урлы будут нормальные без решетки. /about, /contacts и так далее. Технически это все еще SPA, но для пользователя выглядит как обычный сайт.

Для SEO добавляешь prerender-spa-plugin в webpack - он при билде проходит по всем роутам и генерирует статический HTML для каждой страницы. Поисковики его нормально индексируют.

19
Участник • 2 ответа

Слушай, для сайта-визитки на 5 страниц Vue это оверкилл. Серьезно.

Возьми Astro или вообще 11ty (Eleventy). Они заточены именно под статические многостраничники. Пишешь на чем хочешь - хоть markdown, хоть html - получаешь ультрабыстрый статический сайт с идеальным SEO из коробки.

Vue/React/Angular - это для веб-приложений с кучей интерактива. Для корпоративного сайта они избыточны.

15
Участник • 2 ответа

Если уже начал учить Vue - не бросай, пригодится. Но конкретно для твоей задачи посмотри на Vitepress (от создателей Vue). Это генератор статических сайтов, очень простой. Документация Vue сама на нем сделана.

Пишешь страницы в markdown, он генерит статику. Когда нужен интерактив - вставляешь Vue компоненты прямо в markdown.

4
Участник • 2 ответа

Не понимаю зачем люди усложняют. Сделай на PHP + Bootstrap, это вообще классика для корпоративных сайтов. Работает везде, хостинг копейки, SEO без танцев с бубном.

Все эти ваши SPA SSR SSG - мода на пустом месте. Через 5 лет опять что то новое придумают.

22
Участник • 1 ответ

nuxt 3 топ, юзаю на всех проектах. nuxi init и поехал, там все из коробки. роутинг автоматом по файлам в pages, seo метатеги через useSeoMeta, картинки оптимизирует сам

доку почитай - https://nuxt.com/docs

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.