Що вміє Nuxt
Nuxt бере на себе більшість рутинних рішень, які у «чистому» Vue довелося б ухвалювати й підтримувати самостійно:
- сторінки створюються з файлів у папці проєкту, адреси формуються автоматично;
- компоненти й допоміжні функції підключаються без ручного імпорту в кожному файлі;
- для кожного розділу можна задати свій спосіб рендерингу: генерувати заздалегідь, формувати на сервері або лише в браузері;
- є вбудована серверна частина для форм, проксі до зовнішніх API та невеликої бізнес-логіки;
- офіційні й спільнотні модулі закривають типові задачі: оптимізацію зображень, переклади, мапу сайту, роботу з контентом.
Переваги Nuxt
- Простота Vue. Код компонентів зрозумілий навіть розробникам, які прийшли з класичної верстки, тому новій людині в команді легше підключитися.
- Готові домовленості. Структура папок і правила однакові в усіх проєктах на Nuxt, тож код не перетворюється на «у кожного по-своєму».
- Сторінки, зрозумілі пошуковикам. HTML формується на сервері, мета-теги задаються для кожної сторінки окремо.
- Гібридний режим. В одному проєкті можна поєднати статичні статті, динамічний каталог і кабінет, що працює як застосунок.
- Модульність. Багато задач вирішується підключенням модуля, а не написанням власного коду.
Недоліки й обмеження
- Спільнота менша, ніж у React. Готових компонентів і бібліотек менше, а частину рішень доводиться писати самостійно.
- Болісний перехід між великими версіями. Nuxt 3 суттєво відрізняється від Nuxt 2, і офіційну підтримку другої версії вже припинено, тому старі проєкти рано чи пізно потребують міграції.
- Модулі різної якості. Спільнотні модулі іноді не оновлюються вчасно й гальмують оновлення всього проєкту.
- Потрібен Node.js на сервері, якщо використовувати рендеринг на сервері, а не тільки статичну генерацію.
- Автоматика має ціну. Автоімпорти й «магія» фреймворку пришвидшують старт, але без досвіду в них важко знайти причину помилки.
Коли варто подивитися на інші варіанти
- Якщо команда або підрядник, який підтримуватиме проєкт, працює з React, логічніше обрати Next.js — він вирішує ті самі задачі в екосистемі React.
- Якщо потрібен закритий кабінет чи внутрішня система без пошукового трафіку, вистачить застосунку на Vue без серверного рендерингу — він простіший у розміщенні.
- Якщо сайт — це сторінки послуг, блог і форма заявки, швидше й дешевше зробити його на CMS, де контент редагується без розробника.
Перехід з Nuxt 2 на актуальну версію
Багато проєктів досі працюють на Nuxt 2 і Vue 2. Вони не зламаються завтра, але оновлення безпеки для них більше не виходять, а нові бібліотеки під стару версію не створюються.
Міграція — це не натискання кнопки «оновити». Змінюються спосіб отримання даних, робота зі станом, конфігурація і частина модулів. Ми починаємо з аудиту: які модулі мають аналоги, що доведеться переписати, які сторінки найважливіші для бізнесу. Далі переносимо проєкт частинами, зберігаючи адреси сторінок і мета-теги, щоб не втратити позиції в пошуку. Якщо система велика й зав’язана на старий код, корисно подивитися і на загальний підхід до модернізації застарілих систем.
Nuxt як фронтенд до вашого бекенду
Nuxt добре працює як окремий фронтенд поверх API. Типові зв’язки, які ми робимо:
- Nuxt і Laravel — бізнес-логіка, адмінка й база даних на PHP, а швидкий інтерфейс на Vue;
- Nuxt і headless CMS — редактори ведуть контент в адмінці, сайт оновлюється після публікації;
- Nuxt і власний бекенд на Node.js чи Django — для сервісів зі складною логікою, кабінетами й ролями.
Вбудовану серверну частину Nuxt використовуємо для дрібних задач: приховати ключі зовнішніх сервісів, об’єднати кілька запитів в один, обробити форму. Велику бізнес-логіку туди не переносимо — її краще тримати в окремому бекенді.
Швидкість і SEO сайту на Nuxt
Серверний рендеринг сам по собі не робить сайт швидким. Типові причини повільних сторінок на Nuxt:
- у браузер завантажується код для всіх розділів одразу, хоча відвідувачу потрібна одна сторінка;
- на кожен запит сервер заново звертається до API, хоча дані змінюються раз на кілька годин і їх можна кешувати;
- великі бібліотеки підключені заради однієї дрібної функції;
- зображення не стискаються й віддаються в розмірі для великого монітора навіть на смартфоні.
Для пошуку перевіряємо, що в HTML є заголовки, тексти й посилання, кожна сторінка має свої мета-теги й канонічну адресу, а сторінки фільтрів і сортувань не створюють дублікатів. Після запуску дивимося на звіти Search Console, а не лише на локальні вимірювання.
Що впливає на вартість і терміни
- Обсяг публічної частини: скільки типів сторінок і мов, наскільки важливе SEO.
- Наявність бекенду: чи є готовий API, чи серверну частину треба створювати разом із фронтендом.
- Кабінет і ролі: авторизація, права доступу, складні форми й таблиці.
- Для міграції — кількість модулів без прямих аналогів і обсяг коду, написаного під Vue 2.
- Дизайн: готовий набір компонентів чи власна дизайн-система.
Точну оцінку робимо після знайомства з задачею або аудиту наявного коду.
Часті запитання
Чим Nuxt відрізняється від Vue.js? Vue — бібліотека для інтерфейсу. Nuxt додає до неї сторінки, серверний рендеринг, мета-теги та структуру проєкту, тобто робить із Vue повноцінний сайт.
Чи обов’язково переходити з Nuxt 2? Не терміново, якщо проєкт стабільний. Але чим довше відкладати, тим більше бібліотек застаріває, тому міграцію варто планувати заздалегідь, а не в момент проблеми.
Чи можна розмістити сайт на Nuxt на звичайному хостингу? Статично згенерований сайт — так. Для рендерингу на сервері потрібен хостинг з підтримкою Node.js або хмарна платформа.
Чи можна підключити до Nuxt наявну адмінку чи CMS? Так, якщо вона вміє віддавати дані через API. Тоді сайт на Nuxt стає новою «вітриною», а редактори продовжують працювати там, де звикли.
Хто зможе підтримувати проєкт після вас? Будь-який розробник, знайомий з Vue і Nuxt: ми дотримуємося стандартної структури фреймворку і не вигадуємо нестандартних рішень без потреби.
Чому Promodex
Агентство Promodex з’явилося у 2015 році, і відтоді ми реалізували 750+ проєктів. Серед проєктів у портфоліо — Credit Hours, Bankroll і TickOps. Розробку не віддаємо стороннім підрядникам: над сайтом працюють наші фронтенд- і бекенд-розробники, дизайнери та SEO-спеціалісти — загалом 30+ людей у команді. Ви заздалегідь знаєте склад робіт і їхню мету, а коли сайт запущено, ми оновлюємо Nuxt і модулі та додаємо нові функції.