Rokasgrāmatas

Kas ir Next.js? Vienkāršs ceļvedis lietotņu veidotājiem

Next.js ir ietvars tīmekļa vietņu un tīmekļa lietotņu veidošanai ar React. React dod saskarnes būvklučus — pogas, formas, sarakstus. Next.js pievieno pārējo tīmekļa vietni ap tiem: lapas un URL, lapu renderēšanu serverī, lai tās nonāktu gatavas lasīšanai, datu ielādi un backend koda izpildi tajā pašā projektā. Tas ir atvērtā pirmkoda, to veido uzņēmums Vercel, un tas ir viens no visplašāk izmantotajiem veidiem, kā veidot React vietnes.

Kāpēc Next.js ir svarīgs, veidojot ar MI

Kad apraksti lietotni MI veidotājam, tam jāizvēlas tehnisks pamats. Šī izvēle veido lietas, kas tev rūp vēlāk:

  • Redzamība meklētājprogrammās. Publiska vietne, kurai jāieņem vieta Google rezultātos, gūst labumu no reāla HTML sūtīšanas, ko Next.js dara labi.
  • Kur dzīvo backend. Next.js ļauj lapām un servera kodam (piemēram, „saglabā šo formu” vai „izsauc maksājumu API”) dzīvot vienā projektā.
  • Hostings. Next.js lietotnei ar servera funkcijām vajag serveri, uz kura darboties, bet vienkāršu Vite lietotni var pasniegt kā statiskus failus.

Mythex jaunus projektus sāk ar Vite + React + TypeScript + Tailwind pēc noklusējuma un izmanto Next.js, kad to pieprasi — pietiek ar „Use Next.js” pirmajā uzvednē (kā tiek izvēlēta tehnoloģija). Tāpēc noder zināt, kad to vērts pieprasīt.

Ikdienas analoģija

Ja React ir kaste ar augstas kvalitātes Lego klucīšiem, Next.js ir Lego komplekts ar instrukcijām, pamatplāksni un durvju un santehnikas detaļām jau iekļautām.

Tu varētu uzbūvēt to pašu māju no atsevišķiem klucīšiem — tikai pats būtu jāizlemj, kā istabas savienojas, kur ir ieejas durvis un kā iekļūst ūdens. Next.js šos lēmumus pieņem standarta veidā, tāpēc katrs Next.js projekts izskatās līdzīgi, un jauns izstrādātājs (vai MI) ātri atrod ceļu.

Ko Next.js pievieno React

FunkcijaKo tā nozīmē tev
Failu bāzēta maršrutēšanaKatra lapa ir fails. Fails app/pricing/page.tsx kļūst par lapu /pricing. Nav vajadzīgs papildu uzstādījums.
Renderēšana serverīLapas var sagatavot HTML serverī katram pieprasījumam, tāpēc tās parādās ātri un meklētājprogrammas tās var nolasīt.
Statiskā ģenerēšanaLapas, kas reti mainās, var uzbūvēt iepriekš un pasniegt ļoti ātri.
Servera komponentesDaļas no lapas var izpildīties tikai serverī — tieši nolasīt datubāzi — un nosūtīt gatavu HTML, nevis kodu, pārlūkprogrammai.
Maršrutu apstrādātāji un servera darbībasBackend kods, piemēram, API galapunkts vai formas apstrādātājs, atrodas tajā pašā projektā kā lapas.
Iebūvētas optimizācijasAttēlu izmēru maiņa, fontu ielāde un koda sadalīšana tiek veikta tavā vietā.

Next.js ir divi veidi, kā organizēt lapas. App Router (app/ mape) ir jaunākais un atbalsta servera komponentes. Pages Router (pages/ mape) ir oriģinālais un joprojām tiek atbalstīts. Jauni projekti parasti izmanto App Router. Ja tavs MI veidotāja kods vai apmācība izskatās svešs, bieži tieši tāpēc.

Darba piemērs: publiska kafejnīcu saraksta vietne

Iedomājies vietni ar kafejnīcām tavā pilsētā, ar lapu katrai kafejnīcai, kuras vēlies redzēt meklēšanas rezultātos.

Next.js lapa vienai kafejnīcai varētu izskatīties apmēram šādi:

// 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>
  );
}

Kas notiek, kad kāds (vai Google) apmeklē /cafes/blue-door:

  1. Next.js saskaņo URL ar šo failu. Mape [slug] nozīmē „jebkura kafejnīca”.
  2. Komponente izpildās serverī, nolasa kafejnīcu no datubāzes un izveido HTML.
  3. Pārlūkprogramma saņem pilnu lapu ar kafejnīcas nosaukumu un adresi jau iekšā — nav jāgaida, kamēr JavaScript ielādē datus.

Ar vienkāršu klienta puses React lietotni pārlūkprogramma vispirms saņemtu gandrīz tukšu lapu, pēc tam lejupielādētu JavaScript, pēc tam ielādētu kafejnīcu un tikai tad to parādītu. Meklētājprogrammas bieži var ar to tikt galā, bet pilnībā izveidota lapa ir uzticamāka. Skat. SEO MI veidotām tīmekļa vietnēm.

Salīdzini to ar personālam paredzētu paneli aiz pierakstīšanās: meklētājprogrammas to tāpat neredz, tāpēc renderēšana serverī dod mazāk labuma, un vienkāršāka Vite lietotne bieži ir labākā izvēle.

Galvenie termini

TerminsNozīme
Ietvars (framework)Struktūra ar konvencijām, kas nosaka, kā lietotne ir organizēta. Next.js ir ietvars; React ir bibliotēka.
SSR (renderēšana serverī)Lapas HTML sagatavošana serverī katrai apmeklējuma reizei.
SSG (statiskā vietņu ģenerēšana)Lapu sagatavošana HTML formā iepriekš, izvietošanas laikā.
CSR (renderēšana klientā)Pārlūkprogramma veido lapu ar JavaScript pēc ielādes. Tā darbojas tipiska Vite + React lietotne.
SPA (vienas lapas lietotne)Lietotne, kas ielādējas vienreiz un pārslēdz skatus pārlūkprogrammā bez pilnām lapu ielādēm.
HidrācijaPārlūkprogramma „pamostas” serverī nosūtīto HTML, lai pogas un formas kļūtu interaktīvas.
MaršrutsURL ceļš, piemēram, /pricing, un kods, kas uz to atbild.

Biežākie maldīgi priekšstati

  • „Next.js aizstāj React.” Nē. Tas izmanto React. Tavas komponentes joprojām ir React komponentes.
  • „Next.js vienmēr ir labāka izvēle.” Tas ir spējīgāks, bet arī vairāk jāsaprot. Renderēšana serverī, kešatmiņa un atšķirība starp servera un klienta kodu ir biežāki neskaidru kļūdu avoti. Lietotnei, kas galvenokārt aiz pierakstīšanās, vienkārša React lietotne bieži ir vienkāršāka.
  • „Next.js darbojas tikai Vercel.” Tas ir atvērts pirmkods un var darboties jebkurā Node.js serverī vai Docker konteinerā. Pilns statisks eksports ir iespējams, ja neizmanto servera funkcijas.
  • „Next.js garantē labu SEO.” Tas padara lasāmas lapas vieglākas. Reitingi joprojām atkarīgi no nosaukumiem, satura, ātruma un saitēm.
  • „Servera kods Next.js ir automātiski privāts.” Kods, kas atzīmēts klientam, nonāk pārlūkprogrammā. Noslēpumiem jāpaliek servera-only kodā un vides mainīgajos.

Ko lūgt savam MI veidotājam

  • „Izmanto Next.js ar App Router” — savā pirmajā uzvednē, ja to vēlies.
  • „Kuras lapas tiek renderētas serverī, kuras ir statiskas un kuras darbojas pārlūkprogrammā — un kāpēc?”
  • „Publiskās mārketinga un sarakstu lapas padari renderētas serverī vai statiskas, ar pareiziem nosaukumiem un aprakstiem.”
  • „Glabā API atslēgas tikai servera kodā un vides mainīgajos. Parādi man, kur katra tiek nolasīta.”
  • „Vai šai lietotnei vajag Next.js, vai Vite + React lietotne būtu vienkāršāka tam, ko veidojam?”

Next.js Mythex

Mythex pēc noklusējuma izmanto Vite + React + TypeScript + Tailwind un pārslēdzas uz Next.js, kad to pieprasi uzvednē; to nosaukt agri ietaupa kredītus, salīdzinot ar vēlāku maiņu. Lietotni redzi tiešajā priekšskatījumā, un Publish izvieto to tiešsaistes adresē, bez hostinga uzstādīšanas pašam. Mythex dokumentācijā ir atzīmēts, ka klienta puses vienas lapas lietotnēm ir vājāks SEO nekā renderētām serverī vai statiskām HTML lapām, tāpēc mārketinga vietnei, kur svarīga meklēšana, to vērts pateikt uzreiz (SEO tavai lietotnei).

Jautājumi

Kas ir Next.js vienkāršos vārdos?

Next.js ir ietvars, kas uzbūvēts virs React. React veido lietotāja saskarnes daļas; Next.js pievieno pārējo tīmekļa vietni ap tām — lapas un URL, renderēšanu serverī, datu ielādi un backend kodu —, lai pilnu tīmekļa lietotni varētu veidot vienā projektā.

Kāda ir atšķirība starp React un Next.js?

React ir bibliotēka saskarnes komponenšu veidošanai. Next.js ir ietvars, kas izmanto React un pievieno maršrutēšanu, renderēšanu serverī, statiskās lapas un servera puses kodu. Katra Next.js lietotne ir React lietotne, bet ne katra React lietotne izmanto Next.js.

Vai Next.js ir labāks SEO?

Tas var būt. Next.js var nosūtīt meklētājprogrammām un apmeklētājiem pilnībā izveidotu HTML no servera vai iepriekš sagatavotām statiskām lapām, bet vienkārša klienta puses React lietotne nosūta gandrīz tukšu lapu, ko JavaScript aizpilda. Labi nosaukumi, apraksti un saturs joprojām ir svarīgāki par ietvaru.

Vai man vajag Vercel, lai izmantotu Next.js?

Nē. Next.js ir atvērtā pirmkoda programmatūra, ko veido Vercel, bet tas var darboties jebkurā serverī ar Node.js, Docker konteinerā vai kā statisks eksports vietnēm, kurām nevajag servera funkcijas. Dažas funkcijas ir vieglāk uzstādīt Vercel.

Vai savai lietotnei izmantot Next.js vai Vite?

Lietotnei, kurā jāpierakstās, piemēram, panelim vai iekšējam rīkam, Vite + React lietotne ir vienkāršāka un labi darbojas. Next.js ir vērts, ja vajag saturu, ko meklētājprogrammas viegli var nolasīt, daudzas publiskas lapas vai servera renderētas lapas tajā pašā projektā kā tavs backend kods.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar AI · 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ų Македонски മലയാളം Монгол मराठी 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 简体中文 繁體中文(香港) 繁體中文(台灣)