Кому нужен Nuxt.js и что он может?
Server & Frontend — если вы fullstack-разработчик, вы можете писать сервер и фронтенд в одном проекте на одном языке. Они могут быть как изолированы друг от друга, так и использовать общие файлы.
SSR — самое главное! Создание полноценных страниц для поисковых систем (каталоги, статьи и т.д.). Они будут индексироваться и выглядеть как обычные HTML-файлы. Под капотом крутится Nitro (Node.js сервер, библиотека h3 запускается где угодно, Vercel, Netlify, Clouflare), он и генерирует SSR-страницы. Для динамической генерации нужно, чтобы он был запущен. Статика без сервера: npx nuxt generate (SSG), которая превращает весь проект в набор HTML-файлов.
Layouts — готовые наборы макетов, применяемые к любой странице: default, auth, landing и т.д. Можно управлять разными разделами, отдавая разные шаблоны. Routing — встроенный роутинг и автоимпорты: Автоимпорт путей: app/pages/index — site.ru/ app/pages/about — site.ru/about app/pages/catalog/index.vue — site.ru/catalog/ app/pages/catalog/[id].vue — site.ru/catalog/динамический_путь_до_товара
Автоимпорт компонентов: app/components/catalog/Item.vue → компонент app/components/news/Item.vue → компонент app/components/catalog/list/Item.vue →
SEO — назначение страницам SEO-тегов: useSeoMeta({ title: 'Мой магазин лучше всех', description: 'Самое классное описание магазина', keywords: 'магазин, лучший, классный', }) Fetch — своя библиотека запросов к бэкенду: useFetch, useAsyncData, $fetch.
Middleware — встроенные перехватчики при переходе между страницами. Подходят для проверки авторизации, обработки ошибок и т.д.
Layers — один движок, разные бандлы. Идеально для компаний, у которых много разных сайтов (админка, лендинг, личный кабинет), использующих одни и те же компоненты и логику. Это продвинутая фишка для переиспользования кода между проектами. Вы можете создать «базовый» проект с общими компонентами и логикой, а затем подключать его как слой в другие проекты.