{"id":13907,"date":"2023-01-20T07:48:52","date_gmt":"2023-01-20T06:48:52","guid":{"rendered":"https:\/\/vived.io\/?p=13907"},"modified":"2023-01-20T07:48:55","modified_gmt":"2023-01-20T06:48:55","slug":"w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/","title":{"rendered":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121"},"content":{"rendered":"\n<h2 id=\"1-jaki-jest-najbardziej-pozadany-framework-na-rynku-pracy-w-2023\" data-num=1>1. Jaki jest najbardziej po\u017c\u0105dany framework na rynku pracy w 2023?<\/h2>\n\n\n\n<p>W minionym tygodniu portal <a href=\"http:\/\/devjobsscanner.com\" target=\"_blank\" rel=\"noreferrer noopener\">devjobsscanner.com<\/a> podzieli\u0142 si\u0119 ze \u015bwiatem raportem na temat frontendowych framework\u00f3w na rynku pracy. Analizie objemuje okres od pa\u017adziernika 2021 do listopada 2022 i oparta jest o oferty pracy z portali takich jak Glassdor i LinkedIn. Co zaskakuj\u0105ce, nie wszystkie trendy pokrywaj\u0105 si\u0119 z wnioskami jakie wyci\u0105gn\u0105\u0107 mo\u017cna chocia\u017cby z <a href=\"https:\/\/2022.stateofjs.com\/en-US\/\" target=\"_blank\" rel=\"noreferrer noopener\">State of JS 2022<\/a>. Jak zwykle zachecam wszystkich do samodzielnego sprawdzenia raportu, a ja poni\u017cej dziele si\u0119 moimi kilkoma spostrze\u017ceniami.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Je\u015bli zastanawiacie si\u0119 jaki framework jest najpopularniejszy i najlepiej p\u0142atny, to w tej kwestii zaskocze\u0144 nie b\u0119dzie. React niezmiennie kr\u00f3luje w obu tych kategoriach.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-1024x743.png\" alt=\"\" class=\"wp-image-13976\" width=\"640\" height=\"464\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-1024x743.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-300x218.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-768x557.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-1536x1115.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-2048x1486.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Docieraj\u0105ce do nas ze wszystkich stron informacje o zwolnieniach w IT mog\u0105 napawa\u0107 niepokojem. Patrz\u0105c tylko na surowe dane, sumaryczna liczba ofert pracy utrzymywa\u0142a sie w 2022 roku na sta\u0142ym poziomie. Mo\u017ce to oznacza\u0107 die rzeczy. Albo kryzys dotkn\u0105\u0142 tylko specyficzn\u0105 cz\u0119\u015b\u0107 rynku, albo odbicie w ilo\u015bci ofert pracy zaczniemy dostrzega\u0107 dopiero w 2023 roku<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"555\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/career3-mem3.jpeg\" alt=\"\" class=\"wp-image-13946\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/career3-mem3.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/career3-mem3-270x300.jpeg 270w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Mem ukradziony z jednego z Career Weekly &#8211; je\u015bli nie \u015bledzicie to gor\u0105co polecam!<\/figcaption><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Analizuj\u0105c opini\u0119 deweloper\u00f3w w State of JS ci\u0119\u017cko nie zauwa\u017cy\u0107 tendencji spadkowej Angulara. Wygl\u0105da jednak na to, \u017ce tendencja ta nie odbija si\u0119 na rynku pracy. Na przestrzeni ostatnich 6 miesi\u0119cy zapotrzebowanie na deweloper\u00f3w znaj\u0105cych React spad\u0142o o 10 punkt\u00f3w procentowych. Po drugiej stronie barykady zapotrzebowanie na deweloper\u00f3w znaj\u0105cych Angulara wzros\u0142o o 10 punkt\u00f3w procentowych. W obu tych przypadkach ci\u0119\u017cko m\u00f3wi\u0107 o przypadkowych wachaniach &#8211; trend utrzymuje si\u0119 ju\u017c p\u00f3\u0142 roku, a zmiany s\u0105 naprawd\u0119 znacz\u0105ce. M\u00f3wimy tu o pojawieniu si\u0119 b\u0105d\u017a znikni\u0119ciu z rynku 50 tysi\u0119cy ofert pracy.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-1024x693.png\" alt=\"\" class=\"wp-image-13940\" width=\"702\" height=\"474\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-1024x693.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-300x203.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-768x520.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-1536x1040.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2.png 1572w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Angular jest frameworkiem z najwi\u0119kszym odsetkiem pozycji juniorskich. Oczywi\u015bcie ilo\u015bciowo na rynku pojawia si\u0119 wi\u0119cej ofert dla Junior React Deweloper\u00f3w ni\u017c Junior Angular Deweloper\u00f3w. Wi\u0105\u017ce si\u0119 to jednak z du\u017co wi\u0119ksz\u0105 konkurencj\u0105 podczas wchodzenia na rynek pracy. W ostatnich latach React sta\u0142 si\u0119 domy\u015blnym frameworkiem do nauka frontend dewelopmentu. By\u0107 mo\u017ce w 2023 nauka Angulara b\u0119dzie sposobem na zhackowanie systemu i \u0142atwe zdobycie pierwszej pracy w IT.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-1024x349.png\" alt=\"\" class=\"wp-image-13942\" width=\"693\" height=\"235\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-1024x349.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-300x102.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-768x261.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-1536x523.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-2048x697.png 2048w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Rozk\u0142ad ofert pracy pomi\u0119dzy frameworkami jest bardzo uzale\u017cniony od geograficznej lokalizacji. W krajach takich jak Francja, Hiszpania czy Szwajcaria rynek jest po r\u00f3wno podzielony pomi\u0119dzy bibliotek\u0119 od Mety i framework od Google. Vue w \u017cadnym kraju nie dor\u00f3wnuje popularno\u015bci\u0105 swoim starszym braciom, ale wyra\u017anie wyr\u00f3\u017cnia si\u0119 popularno\u015bci\u0105 w Chinach i Belgii. Bior\u0105c pod uwag\u0119 masowe powroty do biur, to lokalne, nie gloabalne trendy mog\u0105 si\u0119 okaza\u0107 kluczowe je\u015bli chodzi o analiz\u0119 rynku pracy.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-74.jpeg\" alt=\"\" class=\"wp-image-13944\" width=\"381\" height=\"429\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-74.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-74-267x300.jpeg 267w\" sizes=\"auto, (max-width: 381px) 100vw, 381px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Technologiczne nowo\u015bci takie jak Svelte, Solid czy Astro z roku na rok zyskuj\u0105 na popularno\u015bci w\u015br\u00f3d deweloper\u00f3w. Tendencja ta nie znajduje jednak pokrycia w rynku pracy. Cytuj\u0105c stary polski film Rejs &#8211; &#8222;Prosz\u0119 pana, ja jestem umys\u0142 \u015bcis\u0142y, mnie si\u0119 podobaj\u0105 melodie, kt\u00f3re ju\u017c raz s\u0142ysza\u0142em&#8221;.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-75.jpeg\" alt=\"\" class=\"wp-image-13948\" width=\"489\" height=\"635\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-75.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-75-231x300.jpeg 231w\" sizes=\"auto, (max-width: 489px) 100vw, 489px\" \/><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Most Demanded Frontend Frameworks in 2022<\/a><\/p>\n\n\n\n<h2 id=\"2-react-native-0-71\" data-num=2>2. React Native 0.71<\/h2>\n\n\n\n<p>Pocz\u0105tek tego roku to wyj\u0105tkowa posucha je\u015bli chodzi o nowo\u015bci. Na szcz\u0119\u015bcie poci\u0105g releas\u00f3w w od\u00f3\u017cnieniu od poci\u0105g\u00f3w PKP nie zawodzi (Ba Dum Tsss) i w minionym tygodniu opublikowany zosta\u0142 React Native 0.71. Nowo\u015bci jest sporo, dlatego bez zb\u0119dnego przed\u0142u\u017cania przejd\u017amy do mi\u0119ska.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TypeScript<\/h3>\n\n\n\n<p>Wed\u0142ug State of JS 2022, tylko u 27% deweloper\u00f3w czas sp\u0119dzony na pisaniu JavaScript przewa\u017ca nad czasem sp\u0119dzonym z TypeScript i tylko 11% deweloper\u00f3w nie korzysta z TypeScript wcale. Nie dziwi wi\u0119c, \u017ce React Native wreszcie zdecydowa\u0142 si\u0119 zainwestowa\u0107 w t\u0105 technologi\u0119 na powa\u017cnie.<\/p>\n\n\n\n<p>Przed wersj\u0105 0.71 typy do React Native mo\u017cna by\u0142o doinstalowa\u0107 pod postaci\u0105 paczki <code>@types\/react-native<\/code>. Wi\u0105za\u0142o si\u0119 to z szeregiem problem\u00f3w &#8211; od rozbie\u017cno\u015bci typ\u00f3w przy korzystaniu z Nightly Release, przez wymaganie dodatkowej konfiguracji, po brak sensownych warto\u015bci domy\u015blnych. Od wersji 0.71 typy sta\u0142y si\u0119 cz\u0119\u015bci\u0105 g\u0142\u00f3wnej paczki i dystybuowan\u0119 b\u0119d\u0105 wraz z ni\u0105. Ponadto dokumentacja frameworku zosta\u0142a zaktualizowana tak, \u017ceby przyk\u0142ady wykorzystywa\u0142y TypeScript. Wisienk\u0105 na torcie zniam jest szablon nowych aplikacji, kt\u00f3ry r\u00f3wnie\u017c zosta\u0142 zaktualizowany, tak \u017ceby od samego pocz\u0105tku wymusza\u0107 na programistach wykorzystanie j\u0119zyka od Microsoft.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gap property<\/h3>\n\n\n\n<p>Wi\u0119kszo\u015b\u0107 frontend deweloper\u00f3w na pewno kojarzy property <code>gap<\/code>, kt\u00f3re pozwala w wygodny spos\u00f3b zdefiniowa\u0107 odst\u0119py mi\u0119dzy elementami w Flex Box i Grid View (je\u015bli nie kojarzyjcie, to zajrzycie <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/gap\" target=\"_blank\" rel=\"noreferrer noopener\">tutaj<\/a>). Niestety deweloperom React Native nigdy nie dane by\u0142o do\u015bwiadczy\u0107 podobnego luksusu&#8230; Na szcz\u0119\u015bcie od React Native 0.71 sytuacja ulegnie zmiania, bo od wersji tej framework b\u0119dzie wspiera\u0142 analogiczne property.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-77.jpeg\" alt=\"\" class=\"wp-image-13954\" width=\"597\" height=\"447\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-77.jpeg 668w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-77-300x225.jpeg 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">React Native coraz bli\u017cej webowych standard\u00f3w<\/h3>\n\n\n\n<p>Czy wiecie, \u017ce React Native mo\u017cecie wykorzysta\u0107 r\u00f3wnie\u017c do budowania webowych aplikacji? Do tego celu wykorzystywany jest specjalny renderer React Native for Web. Wbrew pozorom, projekt ten nie jest tylko ciekawostk\u0105, bo korzystaj\u0105 z niego takie firmy jak Twitter, Uber, Expo czy Major League Soccer.<\/p>\n\n\n\n<p>Nietrudno si\u0119 domy\u015bli\u0107, \u017ce standardy mobilnych aplikacjii znacz\u0105co r\u00f3\u017cni\u0105 si\u0119 od webowych standard\u00f3w. Z tego powodu autor React Native for Web przygotowa\u0142 Proposal, w kt\u00f3rym sugerowa\u0142 ujednolicenie API w wielu miejscach i uzupe\u0142nienie go o brakuj\u0105ce na wbie elementy.<\/p>\n\n\n\n<p> Pierwsze efekty prac nad implementacj\u0105 Proposala trafi\u0142y do React Native 0.71. Do API trafi\u0142a ca\u0142a paczka properties zwi\u0105zanych z accessibility (m.in. <code>aria-label<\/code> i <code>aria-hidden<\/code>) , <code>&lt;img \/&gt;<\/code> (m.in. <code>alt<\/code>) i <code>&lt;input \/&gt;<\/code> (m.in. <code>rows<\/code>, <code>autocomplete<\/code>). Ponadto zaimplementowane zosta\u0142o ca\u0142e API dotycz\u0105ce wydarze\u0144 zwi\u0105zanych z kursorem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071#simplifying-layouts-with-flexbox-gap\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071<\/a><\/p>\n\n\n\n<h2 id=\"3-gluon\" data-num=3>3. Gluon<\/h2>\n\n\n\n<p>Gluon to alternatywa dla Electrona i Tauri, kt\u00f3ra chce podbi\u0107 \u015bwiat zmieniaj\u0105c fundamentalne za\u0142o\u017cenia architektoniczne przyj\u0119te przez konkurencj\u0119. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-78.jpeg\" alt=\"\" class=\"wp-image-13968\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-78.jpeg 750w, https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-78-300x200.jpeg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>Po pierwsze, zamiast do\u0142\u0105cza\u0107 przegl\u0105dark\u0119 do aplikacji, Gluon wykorzystywa\u0142 b\u0119dzie przegl\u0105dark\u0119 ju\u017c zainstalowan\u0105 na komputerze u\u017cytkownika. W ten spos\u00f3b sama aplikacja znacz\u0105co si\u0119 odchudzi, ale odpowiedzialno\u015b\u0107 za aktualizacj\u0119 przegl\u0105darki spadnie na u\u017cytkownika. O ile w przypadku Electrona i Tauri dok\u0142adnie wiedzieli\u015bmy gdzie b\u0119dzie uruchamiany nasz kod, tak teraz musimy mierzy\u0107 si\u0119 ze wszystkimi problemami web deweloper\u00f3w (r\u00f3\u017cnice w zachowaniu mi\u0119dzy przegl\u0105darkami, brakuj\u0105ce API).<\/p>\n\n\n\n<p>Po drugie, Gluon jest zaprojektowany w taki spos\u00f3b, \u017ceby umo\u017cliwi\u0107 podmian\u0119 Node.js na Deno czy Bun. Daje to nam programistom swobod\u0119 wyboru, ale r\u00f3wnocze\u015bnie nie zmusza nas do wyj\u015bcia zbyt daleko poza stref\u0119 komfortu. Bez problemu potrafi\u0119 sobie wyobrazi\u0107 sytuacj\u0119, kiedy dla zwi\u0119kszenia wydajno\u015bci aplikacji Node.js b\u0119dzie podmieniany na przyk\u0142ad na Bun.<\/p>\n\n\n\n<p>Na razie Gluon znajduje si\u0119 w fazie alpha. Projekt wzbudzi\u0142 jednak spore zainteresowanie spo\u0142eczno\u015bci i w ostatnich tygodniach rozwija si\u0119 bardzo pr\u0119\u017cnie. Zdecydowanie jest to jeden z projekt\u00f3w, kt\u00f3re warto \u015bledzi\u0107 w 2023.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/gluonjs.org\/docs\/guide\/introduction\/\">https:\/\/gluonjs.org\/docs\/guide\/introduction\/<\/a><\/p>\n\n\n\n<h2 id=\"4-structura-js\" data-num=4>4. Structura.js<\/h2>\n\n\n\n<p>Niemutowalne zmienne maj\u0105 wiele zalet. J\u0119\u015bli nigdy nie modyfikujemy naszych obiekt\u00f3w, to mo\u017cemy zapewni\u0107, \u017ce tak d\u0142ugo jak nie zmienia si\u0119 referencja do obiektu, tak d\u0142ugo sam obiekt r\u00f3wnie\u017c si\u0119 nie zmienia. To dzi\u0119ki temu zachowaniu frameworki takie jak React czy Angular mog\u0105 w optymalny spos\u00f3b implementowa\u0107 Change Detection. Zamiast por\u00f3wnywa\u0107 ze sob\u0105 wielokrotnie zagnie\u017cd\u017cone obiekty, wystarczy por\u00f3wna\u0107 ich referencja, aby przekona\u0107 si\u0119 czy s\u0105 identyczne. Niestety jak zapewne wiecie, samodzielna implementacja niemutowalno\u015bci bywa k\u0142opotliwa.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with plain JS\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = {\n  ...obj,\n  a: {\n    ...obj.a,\n    c: 42, \/\/ we want to overwrite c\n  },\n}<\/code><\/pre>\n\n\n\n<p>Od lat ulubionym narz\u0119dziem programist\u00f3w do implementowania niemutowalno\u015bci by\u0142 Immer. Wykorzystywa\u0142 on API znane ju\u017c deweloperom, pozwala\u0142 pozby\u0107 si\u0119 r\u0119cznego kopiowania obiekt\u00f3w z kodu i zr\u0119cznie optymalizowa\u0142 pami\u0119\u0107. Chyba najpopularniejszym po\u0142\u0105czeniem jest Immer + Redux. Mo\u017cecie z niego korzysta\u0107 nawet je\u015bli nie jeste\u015bcie tego \u015bwiadomi, bo Redux Toolkit domy\u015blnie korzysta w\u0142a\u015bnie z takiej konfiguracji.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Immer.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = produce(obj, draft =&gt; {\n    draft.a.c = 42;\n});<\/code><\/pre>\n\n\n\n<p>Immer ma ju\u017c jednak swoje lata, dlatego w tym tygodniu do sieci trafi\u0142a alternatywa w postaci Structura.js. Jest ona zdecydowanie szybsza od konkurencji (nawet 22x), bo skupia si\u0119 na zapewnieniu bezpiecze\u0144stwa podczas kompilacji, a nie uruchomienia programu. Takie podej\u015bcie na pewno nie zadowoli wszystkich, ale zdecydowanie znajdzie swoj\u0105 nisz\u0119. <\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Structura.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\n\/\/ this example, despite being indistinguishable from the immer one,\n\/\/ is ~18x more performant!\nconst newState = produce(obj, (draft) =&gt; {\n    draft.a.c = 42;\n})<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/giusepperaso.github.io\/structura.js\/\">https:\/\/giusepperaso.github.io\/structura.js\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>React nadal jest najpopularniejszym i najlepiej p\u0142atnym frameworkiem na rynku pracy. W minionym roku pojawi\u0142y si\u0119 jednak trendy, kt\u00f3re mog\u0105 zwiastowa\u0107 koniec beztroskich lat<\/p>\n","protected":false},"author":12,"featured_media":13974,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273,1],"tags":[],"class_list":["post-13907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl","category-no-category"],"acf":{"feature_image_visible":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","feature_image_blog":{"ID":13970,"id":13970,"title":"pexels-yury-kim-585419","filename":"pexels-yury-kim-585419.jpg","filesize":241532,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","link":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/pexels-yury-kim-585419\/","alt":"","author":"12","description":"","caption":"","name":"pexels-yury-kim-585419","status":"inherit","uploaded_to":13907,"date":"2023-01-19 13:17:26","modified":"2023-01-19 13:17:26","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":1280,"height":853,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419-150x150.jpg","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419-300x200.jpg","medium-width":300,"medium-height":200,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419-768x512.jpg","medium_large-width":768,"medium_large-height":512,"large":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419-1024x682.jpg","large-width":1024,"large-height":682,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","1536x1536-width":1280,"1536x1536-height":853,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","2048x2048-width":1280,"2048x2048-height":853,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":200,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","gform-image-choice-md-width":400,"gform-image-choice-md-height":267,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/pexels-yury-kim-585419.jpg","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":400}},"estimated_reading_time":"7"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - 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\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - Vived\" \/>\n<meta property=\"og:description\" content=\"React nadal jest najpopularniejszym i najlepiej p\u0142atnym frameworkiem na rynku pracy. W minionym roku pojawi\u0142y si\u0119 jednak trendy, kt\u00f3re mog\u0105 zwiastowa\u0107 koniec beztroskich lat\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-20T06:48:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T06:48:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.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<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121\",\"datePublished\":\"2023-01-20T06:48:52+00:00\",\"dateModified\":\"2023-01-20T06:48:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\"},\"wordCount\":1432,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png\",\"articleSection\":[\"Frontend\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\",\"url\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\",\"name\":\"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png\",\"datePublished\":\"2023-01-20T06:48:52+00:00\",\"dateModified\":\"2023-01-20T06:48:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121\"}]},{\"@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":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - 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\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/","og_locale":"pl_PL","og_type":"article","og_title":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - Vived","og_description":"React nadal jest najpopularniejszym i najlepiej p\u0142atnym frameworkiem na rynku pracy. W minionym roku pojawi\u0142y si\u0119 jednak trendy, kt\u00f3re mog\u0105 zwiastowa\u0107 koniec beztroskich lat","og_url":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/","og_site_name":"Vived","article_published_time":"2023-01-20T06:48:52+00:00","article_modified_time":"2023-01-20T06:48:55+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121","datePublished":"2023-01-20T06:48:52+00:00","dateModified":"2023-01-20T06:48:55+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/"},"wordCount":1432,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","articleSection":["Frontend","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/","url":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/","name":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","datePublished":"2023-01-20T06:48:52+00:00","dateModified":"2023-01-20T06:48:55+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Frontend-Weekly-1200x628_V2-1.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/w-ktorym-frameworku-najbardziej-oplaca-sie-pracowac-frontend-weekly-vol-121\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"W kt\u00f3rym frameworku najbardziej op\u0142aca si\u0119 pracowa\u0107? | Frontend Weekly vol. 121"}]},{"@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. Jaki jest najbardziej po\u017c\u0105dany framework na rynku pracy w 2023?<\/h2>\n","innerContent":["\n<h2>1. Jaki jest najbardziej po\u017c\u0105dany framework na rynku pracy w 2023?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W minionym tygodniu portal <a href=\"http:\/\/devjobsscanner.com\" target=\"_blank\" rel=\"noreferrer noopener\">devjobsscanner.com<\/a> podzieli\u0142 si\u0119 ze \u015bwiatem raportem na temat frontendowych framework\u00f3w na rynku pracy. Analizie objemuje okres od pa\u017adziernika 2021 do listopada 2022 i oparta jest o oferty pracy z portali takich jak Glassdor i LinkedIn. Co zaskakuj\u0105ce, nie wszystkie trendy pokrywaj\u0105 si\u0119 z wnioskami jakie wyci\u0105gn\u0105\u0107 mo\u017cna chocia\u017cby z <a href=\"https:\/\/2022.stateofjs.com\/en-US\/\" target=\"_blank\" rel=\"noreferrer noopener\">State of JS 2022<\/a>. Jak zwykle zachecam wszystkich do samodzielnego sprawdzenia raportu, a ja poni\u017cej dziele si\u0119 moimi kilkoma spostrze\u017ceniami.<\/p>\n","innerContent":["\n<p>W minionym tygodniu portal <a href=\"http:\/\/devjobsscanner.com\" target=\"_blank\" rel=\"noreferrer noopener\">devjobsscanner.com<\/a> podzieli\u0142 si\u0119 ze \u015bwiatem raportem na temat frontendowych framework\u00f3w na rynku pracy. Analizie objemuje okres od pa\u017adziernika 2021 do listopada 2022 i oparta jest o oferty pracy z portali takich jak Glassdor i LinkedIn. Co zaskakuj\u0105ce, nie wszystkie trendy pokrywaj\u0105 si\u0119 z wnioskami jakie wyci\u0105gn\u0105\u0107 mo\u017cna chocia\u017cby z <a href=\"https:\/\/2022.stateofjs.com\/en-US\/\" target=\"_blank\" rel=\"noreferrer noopener\">State of JS 2022<\/a>. Jak zwykle zachecam wszystkich do samodzielnego sprawdzenia raportu, a ja poni\u017cej dziele si\u0119 moimi kilkoma spostrze\u017ceniami.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Je\u015bli zastanawiacie si\u0119 jaki framework jest najpopularniejszy i najlepiej p\u0142atny, to w tej kwestii zaskocze\u0144 nie b\u0119dzie. React niezmiennie kr\u00f3luje w obu tych kategoriach.<\/li>\n","innerContent":["\n<li>Je\u015bli zastanawiacie si\u0119 jaki framework jest najpopularniejszy i najlepiej p\u0142atny, to w tej kwestii zaskocze\u0144 nie b\u0119dzie. React niezmiennie kr\u00f3luje w obu tych kategoriach.<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13976,"width":640,"height":464,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-1024x743.png\" alt=\"\" class=\"wp-image-13976\" width=\"640\" height=\"464\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-14.22.19-1024x743.png\" alt=\"\" class=\"wp-image-13976\" width=\"640\" height=\"464\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Docieraj\u0105ce do nas ze wszystkich stron informacje o zwolnieniach w IT mog\u0105 napawa\u0107 niepokojem. Patrz\u0105c tylko na surowe dane, sumaryczna liczba ofert pracy utrzymywa\u0142a sie w 2022 roku na sta\u0142ym poziomie. Mo\u017ce to oznacza\u0107 die rzeczy. Albo kryzys dotkn\u0105\u0142 tylko specyficzn\u0105 cz\u0119\u015b\u0107 rynku, albo odbicie w ilo\u015bci ofert pracy zaczniemy dostrzega\u0107 dopiero w 2023 roku<\/li>\n","innerContent":["\n<li>Docieraj\u0105ce do nas ze wszystkich stron informacje o zwolnieniach w IT mog\u0105 napawa\u0107 niepokojem. Patrz\u0105c tylko na surowe dane, sumaryczna liczba ofert pracy utrzymywa\u0142a sie w 2022 roku na sta\u0142ym poziomie. Mo\u017ce to oznacza\u0107 die rzeczy. Albo kryzys dotkn\u0105\u0142 tylko specyficzn\u0105 cz\u0119\u015b\u0107 rynku, albo odbicie w ilo\u015bci ofert pracy zaczniemy dostrzega\u0107 dopiero w 2023 roku<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13946,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/career3-mem3.jpeg\" alt=\"\" class=\"wp-image-13946\"\/><figcaption class=\"wp-element-caption\">Mem ukradziony z jednego z Career Weekly - je\u015bli nie \u015bledzicie to gor\u0105co polecam!<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/career3-mem3.jpeg\" alt=\"\" class=\"wp-image-13946\"\/><figcaption class=\"wp-element-caption\">Mem ukradziony z jednego z Career Weekly - je\u015bli nie \u015bledzicie to gor\u0105co polecam!<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Analizuj\u0105c opini\u0119 deweloper\u00f3w w State of JS ci\u0119\u017cko nie zauwa\u017cy\u0107 tendencji spadkowej Angulara. Wygl\u0105da jednak na to, \u017ce tendencja ta nie odbija si\u0119 na rynku pracy. Na przestrzeni ostatnich 6 miesi\u0119cy zapotrzebowanie na deweloper\u00f3w znaj\u0105cych React spad\u0142o o 10 punkt\u00f3w procentowych. Po drugiej stronie barykady zapotrzebowanie na deweloper\u00f3w znaj\u0105cych Angulara wzros\u0142o o 10 punkt\u00f3w procentowych. W obu tych przypadkach ci\u0119\u017cko m\u00f3wi\u0107 o przypadkowych wachaniach - trend utrzymuje si\u0119 ju\u017c p\u00f3\u0142 roku, a zmiany s\u0105 naprawd\u0119 znacz\u0105ce. M\u00f3wimy tu o pojawieniu si\u0119 b\u0105d\u017a znikni\u0119ciu z rynku 50 tysi\u0119cy ofert pracy.<\/li>\n","innerContent":["\n<li>Analizuj\u0105c opini\u0119 deweloper\u00f3w w State of JS ci\u0119\u017cko nie zauwa\u017cy\u0107 tendencji spadkowej Angulara. Wygl\u0105da jednak na to, \u017ce tendencja ta nie odbija si\u0119 na rynku pracy. Na przestrzeni ostatnich 6 miesi\u0119cy zapotrzebowanie na deweloper\u00f3w znaj\u0105cych React spad\u0142o o 10 punkt\u00f3w procentowych. Po drugiej stronie barykady zapotrzebowanie na deweloper\u00f3w znaj\u0105cych Angulara wzros\u0142o o 10 punkt\u00f3w procentowych. W obu tych przypadkach ci\u0119\u017cko m\u00f3wi\u0107 o przypadkowych wachaniach - trend utrzymuje si\u0119 ju\u017c p\u00f3\u0142 roku, a zmiany s\u0105 naprawd\u0119 znacz\u0105ce. M\u00f3wimy tu o pojawieniu si\u0119 b\u0105d\u017a znikni\u0119ciu z rynku 50 tysi\u0119cy ofert pracy.<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13940,"width":702,"height":474,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-1024x693.png\" alt=\"\" class=\"wp-image-13940\" width=\"702\" height=\"474\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/frontend-framework-by-month-2-1024x693.png\" alt=\"\" class=\"wp-image-13940\" width=\"702\" height=\"474\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Angular jest frameworkiem z najwi\u0119kszym odsetkiem pozycji juniorskich. Oczywi\u015bcie ilo\u015bciowo na rynku pojawia si\u0119 wi\u0119cej ofert dla Junior React Deweloper\u00f3w ni\u017c Junior Angular Deweloper\u00f3w. Wi\u0105\u017ce si\u0119 to jednak z du\u017co wi\u0119ksz\u0105 konkurencj\u0105 podczas wchodzenia na rynek pracy. W ostatnich latach React sta\u0142 si\u0119 domy\u015blnym frameworkiem do nauka frontend dewelopmentu. By\u0107 mo\u017ce w 2023 nauka Angulara b\u0119dzie sposobem na zhackowanie systemu i \u0142atwe zdobycie pierwszej pracy w IT.<\/li>\n","innerContent":["\n<li>Angular jest frameworkiem z najwi\u0119kszym odsetkiem pozycji juniorskich. Oczywi\u015bcie ilo\u015bciowo na rynku pojawia si\u0119 wi\u0119cej ofert dla Junior React Deweloper\u00f3w ni\u017c Junior Angular Deweloper\u00f3w. Wi\u0105\u017ce si\u0119 to jednak z du\u017co wi\u0119ksz\u0105 konkurencj\u0105 podczas wchodzenia na rynek pracy. W ostatnich latach React sta\u0142 si\u0119 domy\u015blnym frameworkiem do nauka frontend dewelopmentu. By\u0107 mo\u017ce w 2023 nauka Angulara b\u0119dzie sposobem na zhackowanie systemu i \u0142atwe zdobycie pierwszej pracy w IT.<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13942,"width":693,"height":235,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-1024x349.png\" alt=\"\" class=\"wp-image-13942\" width=\"693\" height=\"235\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/Screenshot-2023-01-19-at-13.37.29-1024x349.png\" alt=\"\" class=\"wp-image-13942\" width=\"693\" height=\"235\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Rozk\u0142ad ofert pracy pomi\u0119dzy frameworkami jest bardzo uzale\u017cniony od geograficznej lokalizacji. W krajach takich jak Francja, Hiszpania czy Szwajcaria rynek jest po r\u00f3wno podzielony pomi\u0119dzy bibliotek\u0119 od Mety i framework od Google. Vue w \u017cadnym kraju nie dor\u00f3wnuje popularno\u015bci\u0105 swoim starszym braciom, ale wyra\u017anie wyr\u00f3\u017cnia si\u0119 popularno\u015bci\u0105 w Chinach i Belgii. Bior\u0105c pod uwag\u0119 masowe powroty do biur, to lokalne, nie gloabalne trendy mog\u0105 si\u0119 okaza\u0107 kluczowe je\u015bli chodzi o analiz\u0119 rynku pracy.<\/li>\n","innerContent":["\n<li>Rozk\u0142ad ofert pracy pomi\u0119dzy frameworkami jest bardzo uzale\u017cniony od geograficznej lokalizacji. W krajach takich jak Francja, Hiszpania czy Szwajcaria rynek jest po r\u00f3wno podzielony pomi\u0119dzy bibliotek\u0119 od Mety i framework od Google. Vue w \u017cadnym kraju nie dor\u00f3wnuje popularno\u015bci\u0105 swoim starszym braciom, ale wyra\u017anie wyr\u00f3\u017cnia si\u0119 popularno\u015bci\u0105 w Chinach i Belgii. Bior\u0105c pod uwag\u0119 masowe powroty do biur, to lokalne, nie gloabalne trendy mog\u0105 si\u0119 okaza\u0107 kluczowe je\u015bli chodzi o analiz\u0119 rynku pracy.<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13944,"width":381,"height":429,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-74.jpeg\" alt=\"\" class=\"wp-image-13944\" width=\"381\" height=\"429\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-74.jpeg\" alt=\"\" class=\"wp-image-13944\" width=\"381\" height=\"429\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li>Technologiczne nowo\u015bci takie jak Svelte, Solid czy Astro z roku na rok zyskuj\u0105 na popularno\u015bci w\u015br\u00f3d deweloper\u00f3w. Tendencja ta nie znajduje jednak pokrycia w rynku pracy. Cytuj\u0105c stary polski film Rejs - \"Prosz\u0119 pana, ja jestem umys\u0142 \u015bcis\u0142y, mnie si\u0119 podobaj\u0105 melodie, kt\u00f3re ju\u017c raz s\u0142ysza\u0142em\".<\/li>\n","innerContent":["\n<li>Technologiczne nowo\u015bci takie jak Svelte, Solid czy Astro z roku na rok zyskuj\u0105 na popularno\u015bci w\u015br\u00f3d deweloper\u00f3w. Tendencja ta nie znajduje jednak pokrycia w rynku pracy. Cytuj\u0105c stary polski film Rejs - \"Prosz\u0119 pana, ja jestem umys\u0142 \u015bcis\u0142y, mnie si\u0119 podobaj\u0105 melodie, kt\u00f3re ju\u017c raz s\u0142ysza\u0142em\".<\/li>\n"]}],"innerHTML":"\n<ul><\/ul>\n","innerContent":["\n<ul>",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13948,"width":489,"height":635,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-75.jpeg\" alt=\"\" class=\"wp-image-13948\" width=\"489\" height=\"635\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-75.jpeg\" alt=\"\" class=\"wp-image-13948\" width=\"489\" height=\"635\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Most Demanded Frontend Frameworks in 2022<\/a><\/p>\n","innerContent":["\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.devjobsscanner.com\/blog\/the-most-demanded-frontend-frameworks-in-2022\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Most Demanded Frontend Frameworks in 2022<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. React Native 0.71<\/h2>\n","innerContent":["\n<h2>2. React Native 0.71<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pocz\u0105tek tego roku to wyj\u0105tkowa posucha je\u015bli chodzi o nowo\u015bci. Na szcz\u0119\u015bcie poci\u0105g releas\u00f3w w od\u00f3\u017cnieniu od poci\u0105g\u00f3w PKP nie zawodzi (Ba Dum Tsss) i w minionym tygodniu opublikowany zosta\u0142 React Native 0.71. Nowo\u015bci jest sporo, dlatego bez zb\u0119dnego przed\u0142u\u017cania przejd\u017amy do mi\u0119ska.<\/p>\n","innerContent":["\n<p>Pocz\u0105tek tego roku to wyj\u0105tkowa posucha je\u015bli chodzi o nowo\u015bci. Na szcz\u0119\u015bcie poci\u0105g releas\u00f3w w od\u00f3\u017cnieniu od poci\u0105g\u00f3w PKP nie zawodzi (Ba Dum Tsss) i w minionym tygodniu opublikowany zosta\u0142 React Native 0.71. Nowo\u015bci jest sporo, dlatego bez zb\u0119dnego przed\u0142u\u017cania przejd\u017amy do mi\u0119ska.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>TypeScript<\/h3>\n","innerContent":["\n<h3>TypeScript<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wed\u0142ug State of JS 2022, tylko u 27% deweloper\u00f3w czas sp\u0119dzony na pisaniu JavaScript przewa\u017ca nad czasem sp\u0119dzonym z TypeScript i tylko 11% deweloper\u00f3w nie korzysta z TypeScript wcale. Nie dziwi wi\u0119c, \u017ce React Native wreszcie zdecydowa\u0142 si\u0119 zainwestowa\u0107 w t\u0105 technologi\u0119 na powa\u017cnie.<\/p>\n","innerContent":["\n<p>Wed\u0142ug State of JS 2022, tylko u 27% deweloper\u00f3w czas sp\u0119dzony na pisaniu JavaScript przewa\u017ca nad czasem sp\u0119dzonym z TypeScript i tylko 11% deweloper\u00f3w nie korzysta z TypeScript wcale. Nie dziwi wi\u0119c, \u017ce React Native wreszcie zdecydowa\u0142 si\u0119 zainwestowa\u0107 w t\u0105 technologi\u0119 na powa\u017cnie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Przed wersj\u0105 0.71 typy do React Native mo\u017cna by\u0142o doinstalowa\u0107 pod postaci\u0105 paczki <code>@types\/react-native<\/code>. Wi\u0105za\u0142o si\u0119 to z szeregiem problem\u00f3w - od rozbie\u017cno\u015bci typ\u00f3w przy korzystaniu z Nightly Release, przez wymaganie dodatkowej konfiguracji, po brak sensownych warto\u015bci domy\u015blnych. Od wersji 0.71 typy sta\u0142y si\u0119 cz\u0119\u015bci\u0105 g\u0142\u00f3wnej paczki i dystybuowan\u0119 b\u0119d\u0105 wraz z ni\u0105. Ponadto dokumentacja frameworku zosta\u0142a zaktualizowana tak, \u017ceby przyk\u0142ady wykorzystywa\u0142y TypeScript. Wisienk\u0105 na torcie zniam jest szablon nowych aplikacji, kt\u00f3ry r\u00f3wnie\u017c zosta\u0142 zaktualizowany, tak \u017ceby od samego pocz\u0105tku wymusza\u0107 na programistach wykorzystanie j\u0119zyka od Microsoft.<\/p>\n","innerContent":["\n<p>Przed wersj\u0105 0.71 typy do React Native mo\u017cna by\u0142o doinstalowa\u0107 pod postaci\u0105 paczki <code>@types\/react-native<\/code>. Wi\u0105za\u0142o si\u0119 to z szeregiem problem\u00f3w - od rozbie\u017cno\u015bci typ\u00f3w przy korzystaniu z Nightly Release, przez wymaganie dodatkowej konfiguracji, po brak sensownych warto\u015bci domy\u015blnych. Od wersji 0.71 typy sta\u0142y si\u0119 cz\u0119\u015bci\u0105 g\u0142\u00f3wnej paczki i dystybuowan\u0119 b\u0119d\u0105 wraz z ni\u0105. Ponadto dokumentacja frameworku zosta\u0142a zaktualizowana tak, \u017ceby przyk\u0142ady wykorzystywa\u0142y TypeScript. Wisienk\u0105 na torcie zniam jest szablon nowych aplikacji, kt\u00f3ry r\u00f3wnie\u017c zosta\u0142 zaktualizowany, tak \u017ceby od samego pocz\u0105tku wymusza\u0107 na programistach wykorzystanie j\u0119zyka od Microsoft.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>Gap property<\/h3>\n","innerContent":["\n<h3>Gap property<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wi\u0119kszo\u015b\u0107 frontend deweloper\u00f3w na pewno kojarzy property <code>gap<\/code>, kt\u00f3re pozwala w wygodny spos\u00f3b zdefiniowa\u0107 odst\u0119py mi\u0119dzy elementami w Flex Box i Grid View (je\u015bli nie kojarzyjcie, to zajrzycie <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/gap\" target=\"_blank\" rel=\"noreferrer noopener\">tutaj<\/a>). Niestety deweloperom React Native nigdy nie dane by\u0142o do\u015bwiadczy\u0107 podobnego luksusu... Na szcz\u0119\u015bcie od React Native 0.71 sytuacja ulegnie zmiania, bo od wersji tej framework b\u0119dzie wspiera\u0142 analogiczne property.<\/p>\n","innerContent":["\n<p>Wi\u0119kszo\u015b\u0107 frontend deweloper\u00f3w na pewno kojarzy property <code>gap<\/code>, kt\u00f3re pozwala w wygodny spos\u00f3b zdefiniowa\u0107 odst\u0119py mi\u0119dzy elementami w Flex Box i Grid View (je\u015bli nie kojarzyjcie, to zajrzycie <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/gap\" target=\"_blank\" rel=\"noreferrer noopener\">tutaj<\/a>). Niestety deweloperom React Native nigdy nie dane by\u0142o do\u015bwiadczy\u0107 podobnego luksusu... Na szcz\u0119\u015bcie od React Native 0.71 sytuacja ulegnie zmiania, bo od wersji tej framework b\u0119dzie wspiera\u0142 analogiczne property.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13954,"width":597,"height":447,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-77.jpeg\" alt=\"\" class=\"wp-image-13954\" width=\"597\" height=\"447\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-77.jpeg\" alt=\"\" class=\"wp-image-13954\" width=\"597\" height=\"447\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>React Native coraz bli\u017cej webowych standard\u00f3w<\/h3>\n","innerContent":["\n<h3>React Native coraz bli\u017cej webowych standard\u00f3w<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Czy wiecie, \u017ce React Native mo\u017cecie wykorzysta\u0107 r\u00f3wnie\u017c do budowania webowych aplikacji? Do tego celu wykorzystywany jest specjalny renderer React Native for Web. Wbrew pozorom, projekt ten nie jest tylko ciekawostk\u0105, bo korzystaj\u0105 z niego takie firmy jak Twitter, Uber, Expo czy Major League Soccer.<\/p>\n","innerContent":["\n<p>Czy wiecie, \u017ce React Native mo\u017cecie wykorzysta\u0107 r\u00f3wnie\u017c do budowania webowych aplikacji? Do tego celu wykorzystywany jest specjalny renderer React Native for Web. Wbrew pozorom, projekt ten nie jest tylko ciekawostk\u0105, bo korzystaj\u0105 z niego takie firmy jak Twitter, Uber, Expo czy Major League Soccer.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nietrudno si\u0119 domy\u015bli\u0107, \u017ce standardy mobilnych aplikacjii znacz\u0105co r\u00f3\u017cni\u0105 si\u0119 od webowych standard\u00f3w. Z tego powodu autor React Native for Web przygotowa\u0142 Proposal, w kt\u00f3rym sugerowa\u0142 ujednolicenie API w wielu miejscach i uzupe\u0142nienie go o brakuj\u0105ce na wbie elementy.<\/p>\n","innerContent":["\n<p>Nietrudno si\u0119 domy\u015bli\u0107, \u017ce standardy mobilnych aplikacjii znacz\u0105co r\u00f3\u017cni\u0105 si\u0119 od webowych standard\u00f3w. Z tego powodu autor React Native for Web przygotowa\u0142 Proposal, w kt\u00f3rym sugerowa\u0142 ujednolicenie API w wielu miejscach i uzupe\u0142nienie go o brakuj\u0105ce na wbie elementy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p> Pierwsze efekty prac nad implementacj\u0105 Proposala trafi\u0142y do React Native 0.71. Do API trafi\u0142a ca\u0142a paczka properties zwi\u0105zanych z accessibility (m.in. <code>aria-label<\/code> i <code>aria-hidden<\/code>) , <code>&lt;img \/&gt;<\/code> (m.in. <code>alt<\/code>) i <code>&lt;input \/&gt;<\/code> (m.in. <code>rows<\/code>, <code>autocomplete<\/code>). Ponadto zaimplementowane zosta\u0142o ca\u0142e API dotycz\u0105ce wydarze\u0144 zwi\u0105zanych z kursorem.<\/p>\n","innerContent":["\n<p> Pierwsze efekty prac nad implementacj\u0105 Proposala trafi\u0142y do React Native 0.71. Do API trafi\u0142a ca\u0142a paczka properties zwi\u0105zanych z accessibility (m.in. <code>aria-label<\/code> i <code>aria-hidden<\/code>) , <code>&lt;img \/&gt;<\/code> (m.in. <code>alt<\/code>) i <code>&lt;input \/&gt;<\/code> (m.in. <code>rows<\/code>, <code>autocomplete<\/code>). Ponadto zaimplementowane zosta\u0142o ca\u0142e API dotycz\u0105ce wydarze\u0144 zwi\u0105zanych z kursorem.<\/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:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071#simplifying-layouts-with-flexbox-gap\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071#simplifying-layouts-with-flexbox-gap\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/reactnative.dev\/blog\/2023\/01\/12\/version-071<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Gluon<\/h2>\n","innerContent":["\n<h2>3. Gluon<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Gluon to alternatywa dla Electrona i Tauri, kt\u00f3ra chce podbi\u0107 \u015bwiat zmieniaj\u0105c fundamentalne za\u0142o\u017cenia architektoniczne przyj\u0119te przez konkurencj\u0119. <\/p>\n","innerContent":["\n<p>Gluon to alternatywa dla Electrona i Tauri, kt\u00f3ra chce podbi\u0107 \u015bwiat zmieniaj\u0105c fundamentalne za\u0142o\u017cenia architektoniczne przyj\u0119te przez konkurencj\u0119. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":13968,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-78.jpeg\" alt=\"\" class=\"wp-image-13968\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2023\/01\/download-78.jpeg\" alt=\"\" class=\"wp-image-13968\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Po pierwsze, zamiast do\u0142\u0105cza\u0107 przegl\u0105dark\u0119 do aplikacji, Gluon wykorzystywa\u0142 b\u0119dzie przegl\u0105dark\u0119 ju\u017c zainstalowan\u0105 na komputerze u\u017cytkownika. W ten spos\u00f3b sama aplikacja znacz\u0105co si\u0119 odchudzi, ale odpowiedzialno\u015b\u0107 za aktualizacj\u0119 przegl\u0105darki spadnie na u\u017cytkownika. O ile w przypadku Electrona i Tauri dok\u0142adnie wiedzieli\u015bmy gdzie b\u0119dzie uruchamiany nasz kod, tak teraz musimy mierzy\u0107 si\u0119 ze wszystkimi problemami web deweloper\u00f3w (r\u00f3\u017cnice w zachowaniu mi\u0119dzy przegl\u0105darkami, brakuj\u0105ce API).<\/p>\n","innerContent":["\n<p>Po pierwsze, zamiast do\u0142\u0105cza\u0107 przegl\u0105dark\u0119 do aplikacji, Gluon wykorzystywa\u0142 b\u0119dzie przegl\u0105dark\u0119 ju\u017c zainstalowan\u0105 na komputerze u\u017cytkownika. W ten spos\u00f3b sama aplikacja znacz\u0105co si\u0119 odchudzi, ale odpowiedzialno\u015b\u0107 za aktualizacj\u0119 przegl\u0105darki spadnie na u\u017cytkownika. O ile w przypadku Electrona i Tauri dok\u0142adnie wiedzieli\u015bmy gdzie b\u0119dzie uruchamiany nasz kod, tak teraz musimy mierzy\u0107 si\u0119 ze wszystkimi problemami web deweloper\u00f3w (r\u00f3\u017cnice w zachowaniu mi\u0119dzy przegl\u0105darkami, brakuj\u0105ce API).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Po drugie, Gluon jest zaprojektowany w taki spos\u00f3b, \u017ceby umo\u017cliwi\u0107 podmian\u0119 Node.js na Deno czy Bun. Daje to nam programistom swobod\u0119 wyboru, ale r\u00f3wnocze\u015bnie nie zmusza nas do wyj\u015bcia zbyt daleko poza stref\u0119 komfortu. Bez problemu potrafi\u0119 sobie wyobrazi\u0107 sytuacj\u0119, kiedy dla zwi\u0119kszenia wydajno\u015bci aplikacji Node.js b\u0119dzie podmieniany na przyk\u0142ad na Bun.<\/p>\n","innerContent":["\n<p>Po drugie, Gluon jest zaprojektowany w taki spos\u00f3b, \u017ceby umo\u017cliwi\u0107 podmian\u0119 Node.js na Deno czy Bun. Daje to nam programistom swobod\u0119 wyboru, ale r\u00f3wnocze\u015bnie nie zmusza nas do wyj\u015bcia zbyt daleko poza stref\u0119 komfortu. Bez problemu potrafi\u0119 sobie wyobrazi\u0107 sytuacj\u0119, kiedy dla zwi\u0119kszenia wydajno\u015bci aplikacji Node.js b\u0119dzie podmieniany na przyk\u0142ad na Bun.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na razie Gluon znajduje si\u0119 w fazie alpha. Projekt wzbudzi\u0142 jednak spore zainteresowanie spo\u0142eczno\u015bci i w ostatnich tygodniach rozwija si\u0119 bardzo pr\u0119\u017cnie. Zdecydowanie jest to jeden z projekt\u00f3w, kt\u00f3re warto \u015bledzi\u0107 w 2023.<\/p>\n","innerContent":["\n<p>Na razie Gluon znajduje si\u0119 w fazie alpha. Projekt wzbudzi\u0142 jednak spore zainteresowanie spo\u0142eczno\u015bci i w ostatnich tygodniach rozwija si\u0119 bardzo pr\u0119\u017cnie. Zdecydowanie jest to jeden z projekt\u00f3w, kt\u00f3re warto \u015bledzi\u0107 w 2023.<\/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:\/\/gluonjs.org\/docs\/guide\/introduction\/\">https:\/\/gluonjs.org\/docs\/guide\/introduction\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/gluonjs.org\/docs\/guide\/introduction\/\">https:\/\/gluonjs.org\/docs\/guide\/introduction\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>4. Structura.js<\/h2>\n","innerContent":["\n<h2>4. Structura.js<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Niemutowalne zmienne maj\u0105 wiele zalet. J\u0119\u015bli nigdy nie modyfikujemy naszych obiekt\u00f3w, to mo\u017cemy zapewni\u0107, \u017ce tak d\u0142ugo jak nie zmienia si\u0119 referencja do obiektu, tak d\u0142ugo sam obiekt r\u00f3wnie\u017c si\u0119 nie zmienia. To dzi\u0119ki temu zachowaniu frameworki takie jak React czy Angular mog\u0105 w optymalny spos\u00f3b implementowa\u0107 Change Detection. Zamiast por\u00f3wnywa\u0107 ze sob\u0105 wielokrotnie zagnie\u017cd\u017cone obiekty, wystarczy por\u00f3wna\u0107 ich referencja, aby przekona\u0107 si\u0119 czy s\u0105 identyczne. Niestety jak zapewne wiecie, samodzielna implementacja niemutowalno\u015bci bywa k\u0142opotliwa.<\/p>\n","innerContent":["\n<p>Niemutowalne zmienne maj\u0105 wiele zalet. J\u0119\u015bli nigdy nie modyfikujemy naszych obiekt\u00f3w, to mo\u017cemy zapewni\u0107, \u017ce tak d\u0142ugo jak nie zmienia si\u0119 referencja do obiektu, tak d\u0142ugo sam obiekt r\u00f3wnie\u017c si\u0119 nie zmienia. To dzi\u0119ki temu zachowaniu frameworki takie jak React czy Angular mog\u0105 w optymalny spos\u00f3b implementowa\u0107 Change Detection. Zamiast por\u00f3wnywa\u0107 ze sob\u0105 wielokrotnie zagnie\u017cd\u017cone obiekty, wystarczy por\u00f3wna\u0107 ich referencja, aby przekona\u0107 si\u0119 czy s\u0105 identyczne. Niestety jak zapewne wiecie, samodzielna implementacja niemutowalno\u015bci bywa k\u0142opotliwa.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"javascript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with plain JS\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = {\n  ...obj,\n  a: {\n    ...obj.a,\n    c: 42, \/\/ we want to overwrite c\n  },\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with plain JS\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = {\n  ...obj,\n  a: {\n    ...obj.a,\n    c: 42, \/\/ we want to overwrite c\n  },\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Od lat ulubionym narz\u0119dziem programist\u00f3w do implementowania niemutowalno\u015bci by\u0142 Immer. Wykorzystywa\u0142 on API znane ju\u017c deweloperom, pozwala\u0142 pozby\u0107 si\u0119 r\u0119cznego kopiowania obiekt\u00f3w z kodu i zr\u0119cznie optymalizowa\u0142 pami\u0119\u0107. Chyba najpopularniejszym po\u0142\u0105czeniem jest Immer + Redux. Mo\u017cecie z niego korzysta\u0107 nawet je\u015bli nie jeste\u015bcie tego \u015bwiadomi, bo Redux Toolkit domy\u015blnie korzysta w\u0142a\u015bnie z takiej konfiguracji.<\/p>\n","innerContent":["\n<p>Od lat ulubionym narz\u0119dziem programist\u00f3w do implementowania niemutowalno\u015bci by\u0142 Immer. Wykorzystywa\u0142 on API znane ju\u017c deweloperom, pozwala\u0142 pozby\u0107 si\u0119 r\u0119cznego kopiowania obiekt\u00f3w z kodu i zr\u0119cznie optymalizowa\u0142 pami\u0119\u0107. Chyba najpopularniejszym po\u0142\u0105czeniem jest Immer + Redux. Mo\u017cecie z niego korzysta\u0107 nawet je\u015bli nie jeste\u015bcie tego \u015bwiadomi, bo Redux Toolkit domy\u015blnie korzysta w\u0142a\u015bnie z takiej konfiguracji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"javascript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Immer.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = produce(obj, draft => {\n    draft.a.c = 42;\n});<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Immer.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\nconst obj2 = produce(obj, draft => {\n    draft.a.c = 42;\n});<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Immer ma ju\u017c jednak swoje lata, dlatego w tym tygodniu do sieci trafi\u0142a alternatywa w postaci Structura.js. Jest ona zdecydowanie szybsza od konkurencji (nawet 22x), bo skupia si\u0119 na zapewnieniu bezpiecze\u0144stwa podczas kompilacji, a nie uruchomienia programu. Takie podej\u015bcie na pewno nie zadowoli wszystkich, ale zdecydowanie znajdzie swoj\u0105 nisz\u0119. <\/p>\n","innerContent":["\n<p>Immer ma ju\u017c jednak swoje lata, dlatego w tym tygodniu do sieci trafi\u0142a alternatywa w postaci Structura.js. Jest ona zdecydowanie szybsza od konkurencji (nawet 22x), bo skupia si\u0119 na zapewnieniu bezpiecze\u0144stwa podczas kompilacji, a nie uruchomienia programu. Takie podej\u015bcie na pewno nie zadowoli wszystkich, ale zdecydowanie znajdzie swoj\u0105 nisz\u0119. <\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"javascript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Structura.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\n\/\/ this example, despite being indistinguishable from the immer one,\n\/\/ is ~18x more performant!\nconst newState = produce(obj, (draft) => {\n    draft.a.c = 42;\n})<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Immutability with Structura.js\nconst obj = {\n  a: {\n    c: 3,\n  },\n  b: 2,\n}\n\n\/\/ this example, despite being indistinguishable from the immer one,\n\/\/ is ~18x more performant!\nconst newState = produce(obj, (draft) => {\n    draft.a.c = 42;\n})<\/code><\/pre>\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:\/\/giusepperaso.github.io\/structura.js\/\">https:\/\/giusepperaso.github.io\/structura.js\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/giusepperaso.github.io\/structura.js\/\">https:\/\/giusepperaso.github.io\/structura.js\/<\/a><\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13907","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=13907"}],"version-history":[{"count":12,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13907\/revisions"}],"predecessor-version":[{"id":13993,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/13907\/revisions\/13993"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/13974"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=13907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=13907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=13907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}