Посібники

Що таке Next.js? Простий посібник для творців застосунків

Next.js — це фреймворк для створення вебсайтів і вебзастосунків на React. React дає будівельні блоки інтерфейсу — кнопки, форми, списки. Next.js додає решту вебсайту навколо них: сторінки та URL, рендеринг сторінок на сервері, щоб вони приходили готовими до читання, завантаження даних і запуск бекенд-коду в тому самому проєкті. Він відкритий, створений компанією Vercel і є одним із найпоширеніших способів створювати сайти на React.

Чому Next.js важливий, коли ви створюєте з ШІ

Коли ви описуєте застосунок конструктору на ШІ, той має обрати технічну основу. Цей вибір визначає речі, які вам важливі пізніше:

  • Видимість у пошуку. Публічний сайт, який має потрапити в результати Google, виграє від надсилання справжнього HTML, а Next.js з цим добре справляється.
  • Де живе бекенд. Next.js дає змогу тримати сторінки фронтенду і серверний код (наприклад, «зберегти цю форму» або «викликати API оплати») в одному проєкті.
  • Хостинг. Застосунку Next.js із серверними функціями потрібен сервер, на якому він працює, тоді як звичайний застосунок Vite можна віддавати як статичні файли.

Mythex за замовчуванням починає нові проєкти з Vite + React + TypeScript + Tailwind і використовує Next.js, коли ви його просите: достатньо написати «Use Next.js» у першому запиті (як обирається технологія). Тому корисно знати, коли це варто просити.

Повсякденна аналогія

Якщо React — це коробка якісних конструкторів Lego, то Next.js — це набір Lego з готовими інструкціями, основою та деталями для дверей і водогону.

Можна побудувати той самий будинок із окремих деталей — просто самому треба вирішити, як з'єднати кімнати, де буде вхідні двері і як провести воду. Next.js робить ці рішення за вас стандартним способом, тож кожен проєкт Next.js влаштований подібно, і новий розробник (або ШІ) швидко орієнтується.

Що Next.js додає до React

МожливістьЩо це означає для вас
Маршрутизація на основі файлівКожна сторінка — це файл. Файл app/pricing/page.tsx стає сторінкою /pricing. Жодного додаткового налаштування.
Серверний рендерингСторінки можна зібрати в HTML на сервері для кожного запиту, тож вони з'являються швидко, і пошукові системи можуть їх прочитати.
Статична генераціяСторінки, які рідко змінюються, можна зібрати заздалегідь один раз і віддавати дуже швидко.
Server ComponentsЧастини сторінки можуть виконуватися лише на сервері — напряму читаючи базу даних — і надсилати браузеру готовий HTML, а не код.
Route handlers і server actionsБекенд-код, як-от API endpoint або обробник форми, живе в тому самому проєкті, що й сторінки.
Вбудовані оптимізаціїЗміна розміру зображень, завантаження шрифтів і розбиття коду обробляються автоматично.

У Next.js є два способи організації сторінок. App Router (папка app/) — новіший і підтримує Server Components. Pages Router (папка pages/) — оригінальний, і його досі підтримують. Нові проєкти зазвичай використовують App Router. Якщо код вашого конструктора ШІ або підручник виглядає незнайомо, часто причина в цьому.

Робочий приклад: публічний каталог місцевих кав'ярень

Уявіть сайт зі списком кав'ярень вашого міста, з окремою сторінкою для кожної, який ви хочете бачити в результатах пошуку.

Сторінка Next.js однієї кав'ярні може виглядати приблизно так:

// app/cafes/[slug]/page.tsx  →  /cafes/blue-door, /cafes/hilltop ...
export default async function CafePage({ params }) {
  const { slug } = await params;
  const cafe = await db.cafe.findUnique({ where: { slug } });
  return (
    <main>
      <h1>{cafe.name}</h1>
      <p>{cafe.address}</p>
    </main>
  );
}

Що відбувається, коли хтось (або Google) відвідує /cafes/blue-door:

  1. Next.js зіставляє URL з цим файлом. Папка [slug] означає «будь-яка кав'ярня».
  2. Компонент виконується на сервері, читає кав'ярню з бази даних і будує HTML.
  3. Браузер отримує повну сторінку з назвою й адресою кав'ярні вже на місці — без очікування, поки JavaScript завантажить дані.

З звичайним клієнтським React-застосунком браузер спочатку отримав би майже порожню сторінку, потім завантажив би JavaScript, потім отримав би кав'ярню й показав її. Пошукові системи часто можуть з цим впоратися, але повноцінна сторінка надійніша. Див. SEO для вебсайтів, створених з ШІ.

Порівняйте з панеллю для персоналу за входом: пошукові системи все одно її не бачать, тож серверний рендеринг дає менше користі, і простіший застосунок Vite часто є кращим вибором.

Ключові терміни

ТермінЗначення
ФреймворкСтруктура з правилами, яка визначає, як організований застосунок. Next.js — фреймворк; React — бібліотека.
SSR (серверний рендеринг)Побудова HTML сторінки на сервері під час кожного відвідування.
SSG (генерація статичних сайтів)Побудова сторінок у HTML заздалегідь, під час розгортання.
CSR (клієнтський рендеринг)Браузер будує сторінку за допомогою JavaScript після завантаження. Так зазвичай працює застосунок Vite + React.
SPA (односторінковий застосунок)Застосунок, який завантажується один раз і змінює вигляди в браузері без повного перезавантаження сторінок.
Гідратація (hydration)Браузер «оживляє» HTML, надісланий сервером, щоб кнопки й форми стали інтерактивними.
Маршрут (route)URL-шлях, як-от /pricing, і код, який на нього відповідає.

Поширені хибні уявлення

  • «Next.js замінює React». Ні. Він використовує React. Ваші компоненти все ще є компонентами React.
  • «Next.js завжди кращий вибір». Він потужніший і водночас складніший для розуміння. Серверний рендеринг, кешування та різниця між серверним і клієнтським кодом — типові джерела заплутаних помилок. Для застосунку, який переважно знаходиться за входом, простий застосунок React часто простіший.
  • «Next.js працює лише на Vercel». Він відкритий і може працювати на будь-якому сервері Node.js або в контейнері Docker. Повний статичний експорт можливий, якщо ви не використовуєте серверні функції.
  • «Використання Next.js гарантує добре SEO». Це полегшує читання сторінок. Позиції все одно залежать від заголовків, змісту, швидкості та посилань.
  • «Серверний код у Next.js автоматично приватний». Код, призначений для клієнта, потрапляє в браузер. Секрети мають залишатися в коді, доступному лише на сервері, і в змінних середовища.

Що запитати у вашого конструктора ШІ

  • «Використовуй Next.js з App Router» — у вашому першому запиті, якщо це потрібно.
  • «Які сторінки рендеряться на сервері, які статичні, а які працюють у браузері — і чому?»
  • «Зроби публічні маркетингові сторінки та сторінки каталогу серверними або статичними, з належними заголовками та описами.»
  • «Зберігай API-ключі в коді, доступному лише на сервері, і у змінних середовища. Покажи, де читається кожен із них.»
  • «Чи потрібен цьому застосунку Next.js, чи для того, що ми будуємо, простіше буде застосунок Vite + React?»

Next.js у Mythex

Mythex за замовчуванням використовує Vite + React + TypeScript + Tailwind і переходить на Next.js, коли ви це вказуєте у запиті; якщо назвати це на початку, заощадите кредити порівняно зі зміною пізніше. Застосунок ви бачите в живому Preview, а Publish розгортає його за живою URL-адресою без налаштування хостингу самостійно. У документації Mythex зазначено, що single-page застосунки з рендерингом на клієнті мають слабше SEO, ніж сторінки з серверним рендерингом або статичний HTML, тож для маркетингового сайту, де важливий пошук, варто сказати про це одразу (SEO для вашого застосунку).

Запитання

Що таке Next.js простими словами?

Next.js — це фреймворк, побудований поверх React. React створює компоненти інтерфейсу; Next.js додає решту вебсайту навколо них — сторінки й URL, рендеринг на сервері, завантаження даних і серверний код — щоб ви могли створити повноцінний вебзастосунок в одному проєкті.

У чому різниця між React і Next.js?

React — це бібліотека для створення компонентів інтерфейсу. Next.js — це фреймворк, який використовує React і додає маршрутизацію, серверний рендеринг, статичні сторінки та серверний код. Кожен застосунок на Next.js є застосунком React, але не кожен застосунок React використовує Next.js.

Next.js краще для SEO?

Може бути. Next.js може надсилати пошуковикам і відвідувачам повністю сформований HTML із сервера або з попередньо зібраних статичних сторінок, тоді як звичайний клієнтський React-застосунок надсилає майже порожню сторінку, яку заповнює JavaScript. Гарні заголовки, описи й зміст все одно важливіші за фреймворк.

Чи потрібен мені Vercel, щоб використовувати Next.js?

Ні. Next.js — відкрите програмне забезпечення, створене Vercel, але його можна запускати на будь-якому сервері з Node.js, у контейнері Docker або як статичний експорт для сайтів, яким не потрібні серверні функції. Деякі можливості простіше налаштувати на Vercel.

Чи варто використовувати Next.js або Vite для мого застосунку?

Для застосунку з входом, як-от панель керування чи внутрішній інструмент, простий застосунок Vite + React працює добре. Next.js варто обрати, коли потрібен контент, який пошукові системи легко читають, багато публічних сторінок або сторінки з серверним рендерингом в одному проєкті з вашим бекенд-кодом.

Mythex · Pricing · Створюйте що завгодно з ШІ · Шаблони сайтів і застосунків · Порівняння Mythex · Глосарій створення застосунків за допомогою ШІ · Безкоштовні інструменти для створення застосунків за допомогою ШІ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)