Redaktor:TheEnglishTranslator/Next.js

z Wikipédie, slobodnej encyklopédie

Poznámka: Aby sa zmeny prejavili, po uložení musíte vymazať vyrovnávaciu pamäť vášho prehliadača. Mozilla / Firefox / Safari: držte stlačený Shift a kliknite na Reload alebo stlačte buď Ctrl-F5 alebo Ctrl-R (Command-R na Macintosh); Konqueror:: kliknite na tlačidlo Reload alebo stlačte F5; Opera vymazať vyrovnávaciu pamäť prehliadača v ponuke Tools→Preferences; Internet Explorer: držte Ctrl a kliknite na Refresh alebo stlačte Ctrl-F5;

{{db-author}}

'''Next.js''' je [[Open-source|open source]] vývojový framework postavený na prostredí [[Node.js|Node.js,]] ktorý rozširuje funkcionalitu webových aplikácií vytvorených v knižnici [[React (webový framework)|React]] o ďalšie funkcie ako napríklad: [[Skriptovanie na strane servera|vykresľovanie na strane servera]] a generovanie [[Statická webová stránka|statických webových stránok]] . Dokumentácia knižnice React uvádza nástroj Next.js medzi "Odporúčanými nástrojmi", a odporúča tento nástroj vývojárom ako riešenie pri "vytváraní serverom vykresľovanej webovej stránky s Node.js". <ref name="React documentation">{{Citácia elektronického dokumentu|url=https://reactjs.org/docs/create-a-new-react-app.html#recommended-toolchains}}</ref> Štandardné aplikácie  React vykresľujú svoj obsah v prehliadači na zariadení klienta, Next.js je používaný na rozšírenie tejto funkcie tak, aby umožnila aplikácie vykresľovať na strane servera.

Autorské práva a ochranné známky pre technológiu Next.js vlastní spoločnosť Vercel (predtým nazývaná ZEIT), ktorá taktiež udržiava a vedie open-source vývoj tejto technológie. <ref>{{Citácia elektronického dokumentu|url=https://vercel.com/home}}</ref>

== Informácie ==
Next.js je framework založený na knižnici [[React (webový framework)|React,]] ktorý rozširuje knižnicu React o niekoľko ďalších funkcií ako napríklad: [[Skriptovanie na strane servera|vykresľovania na strane servera]] a generovania [[Statická webová stránka|statických webových stránok]] . <ref name="compareStatic">{{Citácia elektronického dokumentu|url=https://www.smashingmagazine.com/2020/07/differences-static-generated-sites-server-side-rendered-apps/}}</ref> React je [[JavaScript knižnica|JavaScript knižnica,]] ktorá sa štandardne používa na vytváranie webových aplikácií vykresľovaných v prehliadači klienta pomocou programovacieho jazyka JavaScript. <ref name="thakkar1">{{Citácia Harvard|URL=https://doi.org/10.1007/978-1-4842-5869-9_3}}</ref> Vývojári si však uvedomujú niekoľko problémov tohto spôsobu vývoja webových aplikácií, ako napríklad nefunkčnosť webovej stránky v prehliadačoch bez podpory programovacieho jazyka JavaScript, potenciálne bezpečnostné problémy, výrazne predĺžené časy načítania stránky čo môže to poškodiť celkovú [[Optimalizácia pre vyhľadávače|optimalizáciu]] stránky pre vyhľadávače. <ref name="thakkar1" /> Frameworky ako Next.js riešia tieto problémy tým, že umožňujú vykreslenie niektorých alebo všetkých častí webových stránok na strane servera pred odoslaním na zariadenie klientovi. <ref name="thakkar1" /> <ref name="thakkar2">{{Citácia Harvard|URL=https://doi.org/10.1007/978-1-4842-5869-9_4}}</ref> Next.js je jedným z najpopulárnejších komponentov dostupných v knižnici React. <ref>{{Citácia elektronického dokumentu|url=https://www.techrepublic.com/article/why-front-end-development-may-be-the-new-frontier/}}</ref> Je to jeden z niekoľkých odporúčaných „toolchainov“, ktoré sú k dispozícii pri vytváraní novej webovej aplikácie, pričom všetky poskytujú nástroje na zjednodušenie bežných činností. <ref name="SmashingStyle">{{Citácia elektronického dokumentu|url=https://www.smashingmagazine.com/2020/09/comparison-styling-methods-next-js/}}</ref> Next.js vyžaduje prostredie [[Node.js]] a tento framework je možné nataviť pomocou technológie [[Správca balíkov uzlov|Node Package Manager]] .

Spoločnosť [[Google]] prispela do projektu Next.js v roku 2019 pomocou 43 žiadostí o úpravy kódu, v rámci ktorých pomohla zredukovať nepoužívaný [[JavaScript]] kód, znížiť náročnosť na výpočtový výkon a pridať vylepšené metriky. <ref name="insiders">{{Citácia elektronického dokumentu|url=https://www.techrepublic.com/article/insiders-look-at-googles-web-framework-contributions-to-next-js-and-more/}}</ref> K marcu 2020 tento framework používa mnoho veľkých webových stránok vrátane [[Netflix]], [[GitHub]], [[Uber]], [[Ticketmaster]] a [[Starbucks]].  Začiatkom roku 2020 bolo oznámené, že spoločnosť Vercel zabezpečila financovanie série A vo výške 21 miliónov dolárov na podporu vylepšovania a zdokonaľovania softvéru<ref>{{Citácia elektronického dokumentu|url=https://stackoverflow.blog/2020/10/07/qa-with-the-creators-of-next-js-on-version-9-5/}}</ref>. Pôvodný autor frameworku, Guillermo Rauch, je v súčasnosti generálnym riaditeľom spoločnosti Vercel a hlavným vývojárom projektu je Tim Neutkens. <ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3136337/next-step-after-nodejs-framework-for-universal-javascript-apps.html}}</ref>

== História vývoja ==
Next.js bol prvýkrát vydaný ako open-source projekt na platforme [[GitHub]] dňa {{Počiatočný dátum a vek|2016|10|25}}.<ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3185385/nextjs-20-plays-better-with-react-and-javascript.html}}</ref> Pôvodne bol vyvinutý na základe šiestich princípov: predpripravená funkcionalita nevyžadujúca žiadne nastavenie, využívanie programovacieho jazyka JavaScript na všetky činnosti, všetky funkcie sú napísané v programovacom jazyku JavaScript, automatické delenie kódu a vykresľovanie obsahu stránok na strane servera, konfigurovateľné načítavanie údajov, predvídanie požiadaviek a zjednodušenie nasadenia. <ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3307190/nextjs-7-framework-compiles-faster-supports-webassembly.html}}</ref> Next.js 2.0 bol ohlásený v marci 2017. Táto verzia pridala niekoľko vylepšení, ktoré uľahčili prácu s malými webovými stránkami. Zvýšila sa taktiež efektivita zostavovania a zlepšila sa škálovateľnosť funkcie výmeny hot-modulov. <ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3340817/nextjs-8-now-supports-serverless-apps.html}}</ref> Verzia 7.0 bola vydaná v septembri 2018 s vylepšeným spracovaním chýb a podporou pre kontextové API knižnice React pre vylepšené dynamické spracovanie webových trás. Bola to taktiež prvá verzia, ktorá prešla na [[webpack]] 4. <ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3532316/nextjs-upgrade-emphasizes-static-site-generation.html}}</ref> Verzia 8.0 bola vydaná vo februári 2019 a bola prvou verziou, ktorá pridala funkciu vytvárania aplikácií bez servera, v ktorých je kód rozdelený na [[Funkcia lambda (počítačové programovanie)|funkcie lambda,]] ktoré sa spúšťajú na požiadanie. Nové funkcie v tejto verzii taktiež skrátili čas a zdroje potrebné na statické exporty a zlepšila výkon predbežného načítania obsahu webových stránok. <ref>{{Citácia elektronického dokumentu|url=https://www.infoworld.com/article/3568468/nextjs-adds-incremental-static-pages-regeneration.html}}</ref> Verzia 9.3, ohlásená v marci 2020, zahŕňala rôzne optimalizácie a globálnu podporu modulov [[Sass]] a CSS. <ref name=":0" /> Dňa 27. júla 2020 bola ohlásená verzia Next.js 9.5, ktorá pridala nové možnosti vrátane prírastkovej statickej regenerácie, prepisov a podpory presmerovania. <ref name=":1" /> Dňa 15. júna 2021 bola vydaná verzia Next.js 11, ktorá okrem iného pridala funkcie ako: podpora [[webpack]] 5, ukážka funkcie spoločného kódovania v reálnom čase „Next.js Live“ a experimentálnu funkciu automatického prevodu z aplikácie Create React App na Next.js kompatibilnú podobu „Create React App Migration“. <ref name=":0">{{Citácia elektronického dokumentu|url=https://nextjs.org/blog/next-11}}</ref> Dňa 26. októbra 2021 bol vydaný Next.js 12, ktorý pridál kompilátor Rust, vďaka čomu je kompilácia rýchlejšia, podpora [[AVIF]], Edge Functions & Middleware a Native ESM & URL Imports. <ref name=":1">{{Citácia elektronického dokumentu|url=https://nextjs.org/blog/next-12}}</ref>

== Štylizovanie a funkcie ==
Framework Next.js využíva architektúru [[JAMstack]], ktorá oddeľuje front-end a back-end kód a umožňuje efektívny vývoj front-endu, ktorý je nezávislý od akýchkoľvek back-endových API<ref>{{Citácia elektronického dokumentu|url=https://stackoverflow.blog/2020/10/07/qa-with-the-creators-of-next-js-on-version-9-5/}}</ref>. Framework Next.js  podporuje bežné [[Kaskádové štýly|CSS,]] ako aj predkompilované [[Sass (jazyk šablóny so štýlmi)|Scss]] a [[Sass (jazyk šablóny so štýlmi)|Sass]], [[CSS-in-JS]] a štylizované [[JSX (JavaScript)|JSX]] . <ref name="SmashingStyle">{{Citácia elektronického dokumentu|url=https://www.smashingmagazine.com/2020/09/comparison-styling-methods-next-js/}}</ref> Navyše Next.js podporuje programovací jazyk [[TypeScript]] a inteligentné viazanie<ref>{{Cite web|url=https://www.infoworld.com/article/3340817/nextjs-8-now-supports-serverless-apps.html|title=Next.js 8 now supports serverless apps|first=Paul|last=Krill|date=February 14, 2019|website=[[InfoWorld]]|access-date=September 22, 2020|archive-date=October 2, 2020|archive-url=https://web.archive.org/web/20201002001850/https://www.infoworld.com/article/3340817/nextjs-8-now-supports-serverless-apps.html|url-status=live}}</ref>. Open source [[transpiler]] [[Babel (transkompilátor)|Babel]] sa používa na transformáciu a kompiláciu kódu do jazyka JavaScript použiteľného vo webovom prehliadači. Webpack, ďalší open-source nástroj, sa používa na následné spojenie modulov. Všetky tieto nástroje sa používajú s technológiou [[Npm (softvér)|npm]] v príkazovom riadku. <ref name="insiders">{{Citácia elektronického dokumentu|url=https://www.techrepublic.com/article/insiders-look-at-googles-web-framework-contributions-to-next-js-and-more/}}</ref>

Hlavnou črtou frameworku Next.js je použitie vykresľovania obsahu webových stránok na strane servera na zníženie zaťaženia webových prehliadačov a poskytnutie vylepšenej bezpečnosti. Túto funkciu je možné použiť pre ktorúkoľvek časť aplikácie alebo pre celý projekt, čo umožňuje vyčleniť obsahovo náročné stránky a vykresľovať tieto stránky na strane servera.  Taktiež je možné túto funkciu použiť len pre nových návštevníkov webových stránok vyvinutých s Next.js, aby sa znížilo zaťaženie webových prehliadačov, ktoré ešte nemajú načítané všetky potrebné súbory webovej stránky.  Funkcia "hot reloading" deteguje zmeny a znova vykresľuje príslušné stránky, takže server nemusí byť reštartovaný. To umožňuje, aby sa zmeny vykonané v kóde aplikácie okamžite prejavili vo webovom prehliadači, avšak niektoré prehliadače budú vyžadovať opätovné obnovenie webovej stránky. <ref name="thakkar1" /> Softvér používa smerovanie založené na stránkach pre zjednodušenie práce  vývojárov a zahŕňa podporu pre dynamické smerovanie. Medzi ďalšie funkcie patrí výmena tzv. "hot-modulov", aby bolo možné moduly vymieňať za behu aplikácie, automatické rozdeľovanie kódu, ktoré rozdelí kód na časti potrebné na načítanie stránky a predbežné načítanie stránky na skrátenie celkového času načítania webovej . <ref name="thakkar1" />

== Podobný softvér ==

* [[AngularJS]]
* [[LAMP (softvér)]]
* [[Nuxt.js]]
* [[Vue.js]]


<nowiki>
[[Kategória:Softvér pod licenciou MIT]]
[[Kategória:Category:JavaScript knižnice]]</nowiki>