Корисник:GM Red Wing~srwiki/песак
Next.js је веб развојни оквир отвореног кода који је креирала приватна компанија Vercel која пружа веб апликације засноване на React-у са рендеровањем на страни сервера и генерисањем статичког веб сајта .
React документација помиње Next.js међу „препорученим алаткама“ саветујући је програмерима приликом „израде веб локације коју приказује сервер са Node.js“. [1] Док традиционалне React апликације могу рендерујовати свој садржај само у претраживачу на страни клијента, Next.js проширује ову функционалност тако да укључује апликације које се приказују на страни сервера.
Ауторска права и заштитни знаци за Next.js су у власништву Vercel-a, [2] који такође одржава и води развој отвореног кода. [3]
Позадина
[уреди | уреди извор]Next.js је React оквир који омогућава неколико додатних функција, укључујући приказивање на страни сервера и генерисање статичких веб локација . [4] React је JavaScript библиотека која се традиционално користи за прављење веб апликација које се приказују у клијентовом претраживачу помоћу JavaScript-а. [5] Међутим, програмери су препознали неколико проблема са овом стратегијом, као што је неусклађеност корисника који немају приступ Javascript-u или су га онемогућили, потенцијални безбедносни проблеми, значајно продужено време учитавања страница и штета по општу оптимизацију сајта за претраживаче . [5] Оквири као што је Next.js заобилазе ове проблеме тако што дозвољавају да се нека или цела веб локација прикаже на страни сервера пре него што се пошаље клијенту. [5] [6] Next.js је један од најпопуларнијих оквира за React. [7] То је један од неколико препоручених „ланаца алата“ доступних приликом покретања нове апликације, а сви обезбеђују слој апстракције за помоћ у уобичајеним задацима. [8] Next.js захтева Node.js и може се иницијализовати помоћу нпм-а .
Google је допринео пројекту Next.js, укључујући 43 pull request-a у 2019. [9] Од марта 2022. године, оквир користе многе велике веб странице, укључујући Волмарт, Apple, Најки, Netflix, TikTok, Uber, Lift и Starbucks . [5] Почетком 2020. године, Vercel је прикупио 21 милион долара у финансирању Серије А како би подржао побољшања софтвера. Оригинални аутор оквира, Гиљермо Раух, тренутно је извршни директор Vercela, а водећи одржавач пројекта је Тим Њуткенс. [10]
Next.js је први пут објављен као пројекат отвореног кода на GitHub-а 25. октобра 2016. Првобитно је развијен на основу шест принципа: тренутачно доступна функционалност која не захтева подешавање, доступност JavaScript-а, све функције су написане у JavaScript-у, аутоматско дељење кода и приказивање на серверу, подесиво преузимање података, антиципирање захтева и поједностављивање имплементације. [11]
Next.JS 2.0 је најављен у марту 2017. укључујући неколико побољшања која су олакшала рад са малим веб локацијама. Такође је повећао ефикасност израде и побољшао скалабилност функције замене модула уживо . [12]
Верзија 7.0 је објављена у септембру 2018. са побољшаним руковањем грешкама и подршком за React-ов контекст API за унапређено динамичко управљање рутама. Ово је такође била прва верзија која је надограђена на Webpack 4. [13]
Верзија 8.0 је објављена у фебруару 2019. и била је прва која је понудила примену апликација без сервера, у којој је код подељен на анонимне функције које се покрећу на захтев. Верзија је такође смањила време и ресурсе потребне за статички извоз и побољшала перформансе претходног преузимања. [14]
Верзија 9.3, најављена у марту 2020, је укључивала различите оптимизације и глобалну подршку Sass (стилски језик) и CSS модуле. [15]
Дана 27. јула 2020. објављена је верзија Next.js 9.5, додајући нове могућности као што су инкрементална статичка регенерација, поновно уписивање и подршку за преусмеравања. [16]
15. јуна 2021. објављена је верзија Next.js 11, која је између осталог увела: подршку за Webpack 5, преглед функционалности за колаборативно кодирање у реалном времену „Next.js Live“ и експерименталну функцију аутоматске конверзије из Create React апликације у Next.js компатибилан образац „Create React App Migration“. [17]
26. октобра 2021, Next.js 12 је пуштен у продају, додајући Rust компајлер, чинећи компилацију бржом, подршку за AVIF, Edge Functions & Middleware и Native ESM & URL Imports. [18]
Vercel је 26. октобра 2022. објавио Next.js 13. Ово велико издање донело је нови образац рутирања у бета верзији, са додатком App Router-а који укључује подршку за распореде, компоненте React Server, стриминг и нови сет метода за преузимање података. Штавише, Vercel је најавио нови ланац алата за фронт-енд развој под називом Turbo, укључујући Turbopack као наследника Webpack-а, Turborepo за инкременталне системе израде. [19]
У мају 2023. Vercel је објавио Next.js 13.4. Ово је са собом донело стабилну верзију App Router-а, која омогућава програмерима да га користе у производњи. [20]
У октобру 2023. Vercel је објавио Next.js 14, који долази са побољшаним управљањем меморијом уз коришћење edge runtime-а. [21]
Стил и карактеристике
[уреди | уреди извор]Next.js подржава стилизовање са CSS-ом, као и унапред компајлирани Sass и Scss, CSS-in-JS и стилизовани JSX . [8] Поред тога, израђен је са подршком за TypeScript и паметним пакетом. [22] Transpiler отвореног кода SWC се користи за трансформацију и превођење кода у JavaScript који може да користи претраживач. [23] Webpack, још једна алатка отвореног кода, користи се за накнадно спајање модула, међутим тренутно се замењује TurboPack-ом. [24] Сви ови алати се користе са npm-ом у терминалу. [9]
Главна карактеристика Next.js-а је његова употреба рендеровања на страни сервера како би се смањио терет веб претраживача и обезбедила побољшана безбедност[тражи се извор]</link> . Ово се може урадити за било који део апликације или цео систем, омогућавајући да се странице богате садржајем издвајају за приказивање на страни сервера. [5] Такође се то може урадити и за посетиоце који први пут посећују страницу, како би се смањило оптерећење веб претраживача који тек треба да преузме било које од средстава сајта. [6] Функција „hot reloading“ детектује промене у ходу и поново приказује одговарајуће странице како би сервер избегао потребу за поновним покретањем. Ово омогућава да се измене у коду апликације одмах прикажу у веб претраживачу, иако ће неки претраживачи захтевати да се страница освежи. [5] Софтвер користи рутирање засновано на страницама за погодност програмерима и укључује подршку за динамичко рутирање. Остале карактеристике укључују замену hot modul-а тако да се могу заменити уживо, аутоматско раздвајање кода, које укључује само код потребан за учитавање странице, и претходно преузимање странице како би се смањило време учитавања. [5]
Next.js такође подржава инкременталну статичку регенерацију [25] и генерисање статичког сајта – компајлирана верзија веб локације се обично прави током израде и чува као .next фолдер. Када корисник упути захтев, унапред направљене верзија преко статичних HTML страница се кешује и шаље се назад. Ово чини време учитавања веома брзим, али није погодно за сваку веб локацију, посебно за интерактивне сајтове који се често мењају и користе много корисничког уноса.
Такође видети
[уреди | уреди извор]- Angular (веб оквир)
- Gatsby (ЈаваСцрипт оквир)
- LAMP
- React (библиотека за JavaScript)
- Nuxt.js
- Vue.js
- Веб-фрејмворк
Референце
[уреди | уреди извор]- ^ „Recommended Toolchains” (HTML). React documentation (на језику: енглески). Приступљено 10. 7. 2021.
- ^ Next.js Brand Guidelines, 26. 8. 2022
- ^ „Develop. Preview. Ship. For the best frontend teams – Vercel” (HTML). vercel.com (на језику: енглески). Архивирано из оригинала 2021-10-06. г. Приступљено 2020-09-22.
- ^ „Differences Between Static Generated Sites And Server-Side Rendered Apps”. Smashing Magazine (на језику: енглески). 2020-07-02. Приступљено 2020-10-19.
- ^ а б в г д ђ е Thakkar, Mohit (2020), Thakkar, Mohit, ур., „Next.js”, Building React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications (на језику: енглески), Berkeley, CA: Apress: 93—137, ISBN 978-1-4842-5869-9, doi:10.1007/978-1-4842-5869-9_3, Приступљено 2020-10-20
- ^ а б Thakkar, Mohit (2020), Thakkar, Mohit, ур., „Adding Server-Side Rendering to Your React Application”, Building React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications (на језику: енглески), Berkeley, CA: Apress: 139—152, ISBN 978-1-4842-5869-9, doi:10.1007/978-1-4842-5869-9_4, Приступљено 2020-10-20
- ^ Asay, Matt (2. 12. 2019). „Why front-end development may be the new frontier”. TechRepublic (на језику: енглески). Приступљено 2020-10-20.
- ^ а б Lukman, Adebiyi Adedotun (2020-09-17). „Comparing Styling Methods In Next.js”. Smashing Magazine (на језику: енглески). Приступљено 2020-10-20.
- ^ а б Asay, Matt (1. 2. 2020). „An insider's look at Google's web framework contributions to Next.js and more”. TechRepublic (на језику: енглески). Приступљено 2020-10-19.
- ^ Donovan, Ryan (2020-10-07). „Static site generation with single page app functionality? That's what's coming Next(.js)” (html). Stack Overflow Blog (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (2016-10-31). „Next step after Node.js: Framework for 'universal' JavaScript apps”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (2017-03-28). „Next.js 2.0 plays better with React and JavaScript”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (2018-09-21). „Next.js 7 framework compiles faster, supports WebAssembly”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (2019-02-14). „Next.js 8 now supports serverless apps”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (2020-03-12). „Next.js upgrade emphasizes static site generation”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
- ^ Krill, Paul (27. 7. 2020). „Next.js adds incremental static pages regeneration”. InfoWorld. Архивирано из оригинала 2. 10. 2020. г. Приступљено 22. 9. 2020.
- ^ „Next.js 11”. Приступљено 2021-07-10.
- ^ „Next.js 12”. nextjs.org (на језику: енглески). Приступљено 2021-10-27.
- ^ Orbán, Balázs (2022-10-25). „Next.js 13”. nextjs.org (на језику: енглески). Приступљено 2023-06-09.
- ^ Markbåge, Sebastian, Tim Neutkens (2023-05-04). „Next.js 13.4”. nextjs.org (на језику: енглески). Приступљено 2023-06-07.
- ^ „Next.js 14.0.0”. nextjs.org (на језику: енглески). 2023-12-08. Приступљено 2023-11-26.
- ^ Krill, Paul (14. 2. 2019). „Next.js 8 now supports serverless apps”. InfoWorld. Архивирано из оригинала 2. 10. 2020. г. Приступљено 22. 9. 2020.
- ^ „Architecture: Next.js Compiler | Next.js”. nextjs.org (на језику: енглески). Приступљено 2023-08-19.
- ^ „Architecture: Turbopack | Next.js”. nextjs.org (на језику: енглески). Приступљено 2023-08-19.
- ^ „Incremental Static Regeneration with Next.js”. Vercel (на језику: енглески). Приступљено 2022-03-06.
Спољашње везе
[уреди | уреди извор]- „Case Study - Hulu | Next.js”. nextjs.org (на језику: енглески). Приступљено 2020-10-16.
- Smith, Craig S. „Have You Noticed The New Web? It's Faster, More Secure”. Forbes (на језику: енглески). Приступљено 2020-10-16.
- Asay, Matt (3. 4. 2020). „Front-end frameworks are about to get even cooler, says Google lead”. TechRepublic (на језику: енглески). Приступљено 2020-10-16.
- Asay, Matt (2020-06-01). „How GraphQL turned web development on its head”. InfoWorld (на језику: енглески). Приступљено 2020-10-20.
[[Категорија:Софтвер са МИТ лиценцом]] [[Категорија:Веб фрејмворк]] [[Категорија:CS1 одржавање: BOT: статус параметра оригинални-URL непознат]]