{"id":10002,"date":"2022-02-24T14:00:33","date_gmt":"2022-02-24T13:00:33","guid":{"rendered":"https:\/\/vived.io\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/"},"modified":"2022-09-19T13:16:31","modified_gmt":"2022-09-19T11:16:31","slug":"frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/","title":{"rendered":"Frontend Thursday vol. 77 &#8211; express.js 5-beta, Next.js 12.1, React Native WinRT"},"content":{"rendered":"\n<h2 id=\"1-express-js-5-beta\" data-num=1>1. express.js 5-beta<\/h2>\n\n\n\n<p>W 2014 roku Gangnam Style jako pierwszy film na YouTube przebi\u0142 granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird trafi\u0142o i w mgnieniu oka znikn\u0119\u0142o z AppStore, a do repozytori\u00f3w npm trafi\u0142 Express 4. Pierwsza alfa Express.js 5 zosta\u0142a opublikowana niespe\u0142na rok p\u00f3\u017aniej. Przez 7 lata jakie min\u0119\u0142y od tego czasu ponad 60 film\u00f3w na youtube przebi\u0142o granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird zast\u0105pi\u0142y takie hity jak Wordle czy Among Us, Angular doczeka\u0142 si\u0119 13 wersji major, a tw\u00f3rcy Express doprowadzili wersj\u0119 5 swojego frameworku do fazy beta. Patrz\u0105c na list\u0119 zmian nie mam poj\u0119cia co zaj\u0119\u0142o autorom biblioteki tyle czasu, ale trzymam kciuki, \u017ce etap wersji beta uda zamkn\u0105\u0107 si\u0119 co najmniej dwa razy szybciej.\u00a0<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"433\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erzj.jpeg\" alt=\"\" class=\"wp-image-3953\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erzj.jpeg 577w, https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erzj-300x225.jpeg 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure><\/div>\n\n\n\n<p>Odk\u0142adaj\u0105c \u017carty na bok, Express.js technicznie jest wersj\u0105 major, bo wprowadza niekompatybilne zmiany, ale nie znajdziemy w nim \u017cadnych nowych funkcjonalno\u015bci. Z API znikn\u0105\u0142 szereg metod, kt\u00f3re w wersji 4 zosta\u0142y oznaczone jako deprecated (list\u0119 znajdziecie poni\u017cej). Istotn\u0105 zmian\u0105 jest r\u00f3wnie\u017c spos\u00f3b dopasowywania \u015bcie\u017cek, kt\u00f3ry od teraz wspiera\u0142 b\u0119dzie tylko wyra\u017cenia RegExp. Oznacza to, \u017ce wszystkie * zast\u0105pi\u0107 b\u0119dzie trzeba .*, bo pierwsza opcja przestanie dzia\u0142a\u0107 poprawnie.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"272\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/Screenshot-2022-02-24-at-11.55.03.png\" alt=\"\" class=\"wp-image-3956\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/Screenshot-2022-02-24-at-11.55.03.png 443w, https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/Screenshot-2022-02-24-at-11.55.03-300x184.png 300w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/expressjs.com\/en\/guide\/migrating-5.html\">https:\/\/expressjs.com\/en\/guide\/migrating-5.html<\/a><\/p>\n\n\n\n<h2 id=\"2-uproszczona-integracja-react-native-z-windows-api\" data-num=2>2. Uproszczona integracja React Native z Windows API<\/h2>\n\n\n\n<p>Wsparcie React Native dla Windows jest ju\u017c z nami prawie 3 lata i patrz\u0105c na ilo\u015b\u0107 pracy jak\u0105 Microsoft inwestuje w rozw\u00f3j tej integracji, raczej zostanie ona z nami na d\u0142u\u017cej Do tej pory spor\u0105 wad\u0105 stworzonej przez Microsoft architektury by\u0142a konieczno\u015b\u0107 implementacji w\u0142asnych plugin\u00f3w w C++, za ka\u017cdym razem, kiedy chcieli\u015bmy skorzysta\u0107 z natywnych API Windowsa takich jak na przyk\u0142ad ToastAPI. Zesp\u00f3\u0142 odpowiedzialny za rozw\u00f3j narz\u0119dzia postanowi\u0142 wreszcie zaadresowa\u0107 ten problem i dlatego przygotowany zosta\u0142 pakiet 12, kt\u00f3ry umo\u017cliwia dost\u0119p do Windows Runtime bezpo\u015brednio z poziomu JavaScriptu. API ca\u0142ego rozwi\u0105zania nie jest najpi\u0119kniejsze, ale dla przeci\u0119tnego programisty JavaScript jest niepor\u00f3wnywalnie czytelniejsza ni\u017c kod pisany w C++.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"607\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erkf.jpeg\" alt=\"\" class=\"wp-image-3954\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erkf.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erkf-247x300.jpeg 247w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt\">https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt<\/a><\/p>\n\n\n\n<h2 id=\"3-next-js-12-1\" data-num=3>3. Next.js 12.1<\/h2>\n\n\n\n<p>Dzisiejszy przegl\u0105d ko\u0144czymy informacj\u0105 o pojawieniu si\u0119 kolejnej wersji Next.js. Du\u017ce pieni\u0105dze zainwestowane w projekt ewidentnie s\u0105 dobrze wykorzystywane, bo wersja minor dostarcza wi\u0119cej funkcjonalno\u015bci, ni\u017c rozwijana 7 lat beta Express.js.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"548\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66esic.jpeg\" alt=\"\" class=\"wp-image-3955\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66esic.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66esic-274x300.jpeg 274w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n\n<p>Najwi\u0119ksz\u0105 nowo\u015bci\u0105 jest dodanie opcji uniewa\u017cniania cache dla inkrementalnej generacji statycznych stron. Je\u015bli nie kojarzycie tej stosunkowo nowej funkcjonalno\u015bci (pojawi\u0142a si\u0119 ona dopiero w Next.js 9.5), to umo\u017cliwia ona statyczne generowanie strony dopiero w momencie, kiedy zapyta o ni\u0105 u\u017cytkownik. Wygenerowana w ten spos\u00f3b strona zapisywana jest w cache i przez zadany okres czasu zwracana jest kolejnym u\u017cytkownikom. W przypadku stron opartych o CMS brak mo\u017cliwo\u015bci od\u015bwie\u017cenia tre\u015bci strony dla wszystkich u\u017cytkownik\u00f3w rzeczywi\u015bcie stanowi\u0142 do tej pory spory problem.<\/p>\n\n\n\n<p>SWC, czyli kompilator oparty o Rust, utrzymywany przez Vercel (firm\u0119 matk\u0119 Next.js) doczeka\u0142 si\u0119 kilku istotnych usprawnie\u0144, kt\u00f3re mocno wp\u0142ywaj\u0105 na Next.js. W najnowszej wersji pojawi\u0142 si\u0119 szereg bibliotek, kt\u00f3re otrzyma\u0142y kompatybilno\u015b\u0107. W\u015br\u00f3d nich s\u0105 mi\u0119dzy takie tuzy jak styled-components, relay czy jest. W notatce towarzysz\u0105cej wydaniu mo\u017cemy r\u00f3wnie\u017c doczyta\u0107 si\u0119 zapowiedzi w\u0142\u0105czenia usprawnionej minifikacji w Next.js 12.2, kt\u00f3ra przy\u015bpieszy ca\u0142y proces a\u017c siedmiokrotnie.<\/p>\n\n\n\n<p>Vercel aktualnie zarabia g\u0142\u00f3wnie na swojej chmurze umo\u017cliwiaj\u0105cej hostowanie aplikacji Next.js. Firma najwyra\u017aniej nie zamierza porzuca\u0107 ludzi chc\u0105cych samodzielnie hostowa\u0107 swoje aplikacje, bo Dockerowe obrazy wykorzystywane do tego celu zosta\u0142y odchudzone o 80%. Nie pozostaje powiedzie\u0107 nic innego jak dobra robota!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/nextjs.org\/blog\/next-12-1\">https:\/\/nextjs.org\/blog\/next-12-1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Minony tydzie\u0144 pe\u0142ny by\u0142 mniejszych i wi\u0119kszych releas\u00f3w. Po 7 latach doczekali\u015bmy si\u0119 nowej wersji najpopularniejszego backendowego frameworku dla JavaScript, czyli express.js. Opr\u00f3cz tego ukaza\u0142a si\u0119 kolejna wersja next.js oraz usprawniona integracja React Native z Windows API. Rozsi\u0105d\u017acie si\u0119 wygodnie i zapraszamy do lektury!<\/p>\n","protected":false},"author":12,"featured_media":7965,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-10002","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/FRONTEND-3.png","feature_image_visible":false,"estimated_reading_time":"3"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived\" \/>\n<meta property=\"og:description\" content=\"Minony tydzie\u0144 pe\u0142ny by\u0142 mniejszych i wi\u0119kszych releas\u00f3w. Po 7 latach doczekali\u015bmy si\u0119 nowej wersji najpopularniejszego backendowego frameworku dla JavaScript, czyli express.js. Opr\u00f3cz tego ukaza\u0142a si\u0119 kolejna wersja next.js oraz usprawniona integracja React Native z Windows API. Rozsi\u0105d\u017acie si\u0119 wygodnie i zapraszamy do lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-24T13:00:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/FRONTEND-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/FRONTEND-3.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Frontend Thursday vol. 77 &#8211; express.js 5-beta, Next.js 12.1, React Native WinRT\",\"datePublished\":\"2022-02-24T13:00:33+00:00\",\"dateModified\":\"2022-09-19T11:16:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\"},\"wordCount\":646,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\",\"url\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\",\"name\":\"Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg\",\"datePublished\":\"2022-02-24T13:00:33+00:00\",\"dateModified\":\"2022-09-19T11:16:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg\",\"width\":2254,\"height\":1500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursday vol. 77 &#8211; express.js 5-beta, Next.js 12.1, React Native WinRT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived","og_description":"Minony tydzie\u0144 pe\u0142ny by\u0142 mniejszych i wi\u0119kszych releas\u00f3w. Po 7 latach doczekali\u015bmy si\u0119 nowej wersji najpopularniejszego backendowego frameworku dla JavaScript, czyli express.js. Opr\u00f3cz tego ukaza\u0142a si\u0119 kolejna wersja next.js oraz usprawniona integracja React Native z Windows API. Rozsi\u0105d\u017acie si\u0119 wygodnie i zapraszamy do lektury!","og_url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/","og_site_name":"Vived","article_published_time":"2022-02-24T13:00:33+00:00","article_modified_time":"2022-09-19T11:16:31+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/FRONTEND-3.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","twitter_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/FRONTEND-3.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Frontend Thursday vol. 77 &#8211; express.js 5-beta, Next.js 12.1, React Native WinRT","datePublished":"2022-02-24T13:00:33+00:00","dateModified":"2022-09-19T11:16:31+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/"},"wordCount":646,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/","url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/","name":"Frontend Thursday vol. 77 - express.js 5-beta, Next.js 12.1, React Native WinRT - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg","datePublished":"2022-02-24T13:00:33+00:00","dateModified":"2022-09-19T11:16:31+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/pexels-photo-2881233.jpeg","width":2254,"height":1500},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-77-express-js-5-beta-next-js-12-1-react-native-winrt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursday vol. 77 &#8211; express.js 5-beta, Next.js 12.1, React Native WinRT"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. express.js 5-beta<\/h2>\n","innerContent":["\n<h2>1. express.js 5-beta<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W 2014 roku Gangnam Style jako pierwszy film na YouTube przebi\u0142 granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird trafi\u0142o i w mgnieniu oka znikn\u0119\u0142o z AppStore, a do repozytori\u00f3w npm trafi\u0142 Express 4. Pierwsza alfa Express.js 5 zosta\u0142a opublikowana niespe\u0142na rok p\u00f3\u017aniej. Przez 7 lata jakie min\u0119\u0142y od tego czasu ponad 60 film\u00f3w na youtube przebi\u0142o granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird zast\u0105pi\u0142y takie hity jak Wordle czy Among Us, Angular doczeka\u0142 si\u0119 13 wersji major, a tw\u00f3rcy Express doprowadzili wersj\u0119 5 swojego frameworku do fazy beta. Patrz\u0105c na list\u0119 zmian nie mam poj\u0119cia co zaj\u0119\u0142o autorom biblioteki tyle czasu, ale trzymam kciuki, \u017ce etap wersji beta uda zamkn\u0105\u0107 si\u0119 co najmniej dwa razy szybciej.\u00a0<\/p>\n","innerContent":["\n<p>W 2014 roku Gangnam Style jako pierwszy film na YouTube przebi\u0142 granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird trafi\u0142o i w mgnieniu oka znikn\u0119\u0142o z AppStore, a do repozytori\u00f3w npm trafi\u0142 Express 4. Pierwsza alfa Express.js 5 zosta\u0142a opublikowana niespe\u0142na rok p\u00f3\u017aniej. Przez 7 lata jakie min\u0119\u0142y od tego czasu ponad 60 film\u00f3w na youtube przebi\u0142o granic\u0119 2 miliard\u00f3w wy\u015bwietle\u0144, Flappy Bird zast\u0105pi\u0142y takie hity jak Wordle czy Among Us, Angular doczeka\u0142 si\u0119 13 wersji major, a tw\u00f3rcy Express doprowadzili wersj\u0119 5 swojego frameworku do fazy beta. Patrz\u0105c na list\u0119 zmian nie mam poj\u0119cia co zaj\u0119\u0142o autorom biblioteki tyle czasu, ale trzymam kciuki, \u017ce etap wersji beta uda zamkn\u0105\u0107 si\u0119 co najmniej dwa razy szybciej.\u00a0<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3953,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erzj.jpeg\" alt=\"\" class=\"wp-image-3953\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erzj.jpeg\" alt=\"\" class=\"wp-image-3953\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Odk\u0142adaj\u0105c \u017carty na bok, Express.js technicznie jest wersj\u0105 major, bo wprowadza niekompatybilne zmiany, ale nie znajdziemy w nim \u017cadnych nowych funkcjonalno\u015bci. Z API znikn\u0105\u0142 szereg metod, kt\u00f3re w wersji 4 zosta\u0142y oznaczone jako deprecated (list\u0119 znajdziecie poni\u017cej). Istotn\u0105 zmian\u0105 jest r\u00f3wnie\u017c spos\u00f3b dopasowywania \u015bcie\u017cek, kt\u00f3ry od teraz wspiera\u0142 b\u0119dzie tylko wyra\u017cenia RegExp. Oznacza to, \u017ce wszystkie * zast\u0105pi\u0107 b\u0119dzie trzeba .*, bo pierwsza opcja przestanie dzia\u0142a\u0107 poprawnie.<\/p>\n","innerContent":["\n<p>Odk\u0142adaj\u0105c \u017carty na bok, Express.js technicznie jest wersj\u0105 major, bo wprowadza niekompatybilne zmiany, ale nie znajdziemy w nim \u017cadnych nowych funkcjonalno\u015bci. Z API znikn\u0105\u0142 szereg metod, kt\u00f3re w wersji 4 zosta\u0142y oznaczone jako deprecated (list\u0119 znajdziecie poni\u017cej). Istotn\u0105 zmian\u0105 jest r\u00f3wnie\u017c spos\u00f3b dopasowywania \u015bcie\u017cek, kt\u00f3ry od teraz wspiera\u0142 b\u0119dzie tylko wyra\u017cenia RegExp. Oznacza to, \u017ce wszystkie * zast\u0105pi\u0107 b\u0119dzie trzeba .*, bo pierwsza opcja przestanie dzia\u0142a\u0107 poprawnie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3956,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/Screenshot-2022-02-24-at-11.55.03.png\" alt=\"\" class=\"wp-image-3956\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/Screenshot-2022-02-24-at-11.55.03.png\" alt=\"\" class=\"wp-image-3956\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/expressjs.com\/en\/guide\/migrating-5.html\">https:\/\/expressjs.com\/en\/guide\/migrating-5.html<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/expressjs.com\/en\/guide\/migrating-5.html\">https:\/\/expressjs.com\/en\/guide\/migrating-5.html<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Uproszczona integracja React Native z Windows API<\/h2>\n","innerContent":["\n<h2>2. Uproszczona integracja React Native z Windows API<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wsparcie React Native dla Windows jest ju\u017c z nami prawie 3 lata i patrz\u0105c na ilo\u015b\u0107 pracy jak\u0105 Microsoft inwestuje w rozw\u00f3j tej integracji, raczej zostanie ona z nami na d\u0142u\u017cej Do tej pory spor\u0105 wad\u0105 stworzonej przez Microsoft architektury by\u0142a konieczno\u015b\u0107 implementacji w\u0142asnych plugin\u00f3w w C++, za ka\u017cdym razem, kiedy chcieli\u015bmy skorzysta\u0107 z natywnych API Windowsa takich jak na przyk\u0142ad ToastAPI. Zesp\u00f3\u0142 odpowiedzialny za rozw\u00f3j narz\u0119dzia postanowi\u0142 wreszcie zaadresowa\u0107 ten problem i dlatego przygotowany zosta\u0142 pakiet 12, kt\u00f3ry umo\u017cliwia dost\u0119p do Windows Runtime bezpo\u015brednio z poziomu JavaScriptu. API ca\u0142ego rozwi\u0105zania nie jest najpi\u0119kniejsze, ale dla przeci\u0119tnego programisty JavaScript jest niepor\u00f3wnywalnie czytelniejsza ni\u017c kod pisany w C++.<\/p>\n","innerContent":["\n<p>Wsparcie React Native dla Windows jest ju\u017c z nami prawie 3 lata i patrz\u0105c na ilo\u015b\u0107 pracy jak\u0105 Microsoft inwestuje w rozw\u00f3j tej integracji, raczej zostanie ona z nami na d\u0142u\u017cej Do tej pory spor\u0105 wad\u0105 stworzonej przez Microsoft architektury by\u0142a konieczno\u015b\u0107 implementacji w\u0142asnych plugin\u00f3w w C++, za ka\u017cdym razem, kiedy chcieli\u015bmy skorzysta\u0107 z natywnych API Windowsa takich jak na przyk\u0142ad ToastAPI. Zesp\u00f3\u0142 odpowiedzialny za rozw\u00f3j narz\u0119dzia postanowi\u0142 wreszcie zaadresowa\u0107 ten problem i dlatego przygotowany zosta\u0142 pakiet 12, kt\u00f3ry umo\u017cliwia dost\u0119p do Windows Runtime bezpo\u015brednio z poziomu JavaScriptu. API ca\u0142ego rozwi\u0105zania nie jest najpi\u0119kniejsze, ale dla przeci\u0119tnego programisty JavaScript jest niepor\u00f3wnywalnie czytelniejsza ni\u017c kod pisany w C++.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3954,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erkf.jpeg\" alt=\"\" class=\"wp-image-3954\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66erkf.jpeg\" alt=\"\" class=\"wp-image-3954\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt\">https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt\">https:\/\/microsoft.github.io\/react-native-windows\/blog\/2022\/02\/11\/rnwinrt<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Next.js 12.1<\/h2>\n","innerContent":["\n<h2>3. Next.js 12.1<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dzisiejszy przegl\u0105d ko\u0144czymy informacj\u0105 o pojawieniu si\u0119 kolejnej wersji Next.js. Du\u017ce pieni\u0105dze zainwestowane w projekt ewidentnie s\u0105 dobrze wykorzystywane, bo wersja minor dostarcza wi\u0119cej funkcjonalno\u015bci, ni\u017c rozwijana 7 lat beta Express.js.<\/p>\n","innerContent":["\n<p>Dzisiejszy przegl\u0105d ko\u0144czymy informacj\u0105 o pojawieniu si\u0119 kolejnej wersji Next.js. Du\u017ce pieni\u0105dze zainwestowane w projekt ewidentnie s\u0105 dobrze wykorzystywane, bo wersja minor dostarcza wi\u0119cej funkcjonalno\u015bci, ni\u017c rozwijana 7 lat beta Express.js.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3955,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66esic.jpeg\" alt=\"\" class=\"wp-image-3955\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/02\/66esic.jpeg\" alt=\"\" class=\"wp-image-3955\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Najwi\u0119ksz\u0105 nowo\u015bci\u0105 jest dodanie opcji uniewa\u017cniania cache dla inkrementalnej generacji statycznych stron. Je\u015bli nie kojarzycie tej stosunkowo nowej funkcjonalno\u015bci (pojawi\u0142a si\u0119 ona dopiero w Next.js 9.5), to umo\u017cliwia ona statyczne generowanie strony dopiero w momencie, kiedy zapyta o ni\u0105 u\u017cytkownik. Wygenerowana w ten spos\u00f3b strona zapisywana jest w cache i przez zadany okres czasu zwracana jest kolejnym u\u017cytkownikom. W przypadku stron opartych o CMS brak mo\u017cliwo\u015bci od\u015bwie\u017cenia tre\u015bci strony dla wszystkich u\u017cytkownik\u00f3w rzeczywi\u015bcie stanowi\u0142 do tej pory spory problem.<\/p>\n","innerContent":["\n<p>Najwi\u0119ksz\u0105 nowo\u015bci\u0105 jest dodanie opcji uniewa\u017cniania cache dla inkrementalnej generacji statycznych stron. Je\u015bli nie kojarzycie tej stosunkowo nowej funkcjonalno\u015bci (pojawi\u0142a si\u0119 ona dopiero w Next.js 9.5), to umo\u017cliwia ona statyczne generowanie strony dopiero w momencie, kiedy zapyta o ni\u0105 u\u017cytkownik. Wygenerowana w ten spos\u00f3b strona zapisywana jest w cache i przez zadany okres czasu zwracana jest kolejnym u\u017cytkownikom. W przypadku stron opartych o CMS brak mo\u017cliwo\u015bci od\u015bwie\u017cenia tre\u015bci strony dla wszystkich u\u017cytkownik\u00f3w rzeczywi\u015bcie stanowi\u0142 do tej pory spory problem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>SWC, czyli kompilator oparty o Rust, utrzymywany przez Vercel (firm\u0119 matk\u0119 Next.js) doczeka\u0142 si\u0119 kilku istotnych usprawnie\u0144, kt\u00f3re mocno wp\u0142ywaj\u0105 na Next.js. W najnowszej wersji pojawi\u0142 si\u0119 szereg bibliotek, kt\u00f3re otrzyma\u0142y kompatybilno\u015b\u0107. W\u015br\u00f3d nich s\u0105 mi\u0119dzy takie tuzy jak styled-components, relay czy jest. W notatce towarzysz\u0105cej wydaniu mo\u017cemy r\u00f3wnie\u017c doczyta\u0107 si\u0119 zapowiedzi w\u0142\u0105czenia usprawnionej minifikacji w Next.js 12.2, kt\u00f3ra przy\u015bpieszy ca\u0142y proces a\u017c siedmiokrotnie.<\/p>\n","innerContent":["\n<p>SWC, czyli kompilator oparty o Rust, utrzymywany przez Vercel (firm\u0119 matk\u0119 Next.js) doczeka\u0142 si\u0119 kilku istotnych usprawnie\u0144, kt\u00f3re mocno wp\u0142ywaj\u0105 na Next.js. W najnowszej wersji pojawi\u0142 si\u0119 szereg bibliotek, kt\u00f3re otrzyma\u0142y kompatybilno\u015b\u0107. W\u015br\u00f3d nich s\u0105 mi\u0119dzy takie tuzy jak styled-components, relay czy jest. W notatce towarzysz\u0105cej wydaniu mo\u017cemy r\u00f3wnie\u017c doczyta\u0107 si\u0119 zapowiedzi w\u0142\u0105czenia usprawnionej minifikacji w Next.js 12.2, kt\u00f3ra przy\u015bpieszy ca\u0142y proces a\u017c siedmiokrotnie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Vercel aktualnie zarabia g\u0142\u00f3wnie na swojej chmurze umo\u017cliwiaj\u0105cej hostowanie aplikacji Next.js. Firma najwyra\u017aniej nie zamierza porzuca\u0107 ludzi chc\u0105cych samodzielnie hostowa\u0107 swoje aplikacje, bo Dockerowe obrazy wykorzystywane do tego celu zosta\u0142y odchudzone o 80%. Nie pozostaje powiedzie\u0107 nic innego jak dobra robota!<\/p>\n","innerContent":["\n<p>Vercel aktualnie zarabia g\u0142\u00f3wnie na swojej chmurze umo\u017cliwiaj\u0105cej hostowanie aplikacji Next.js. Firma najwyra\u017aniej nie zamierza porzuca\u0107 ludzi chc\u0105cych samodzielnie hostowa\u0107 swoje aplikacje, bo Dockerowe obrazy wykorzystywane do tego celu zosta\u0142y odchudzone o 80%. Nie pozostaje powiedzie\u0107 nic innego jak dobra robota!<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/nextjs.org\/blog\/next-12-1\">https:\/\/nextjs.org\/blog\/next-12-1<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/nextjs.org\/blog\/next-12-1\">https:\/\/nextjs.org\/blog\/next-12-1<\/a><\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10002"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10002\/revisions"}],"predecessor-version":[{"id":10527,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10002\/revisions\/10527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7965"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}