{"id":9947,"date":"2022-07-08T11:28:04","date_gmt":"2022-07-08T09:28:04","guid":{"rendered":"https:\/\/vived.io\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/"},"modified":"2022-09-19T13:16:26","modified_gmt":"2022-09-19T11:16:26","slug":"sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/","title":{"rendered":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta &#8211; Frontend Weekly vol. 95"},"content":{"rendered":"\n<h2 id=\"1-vue-2-7-ostatni-przystanek-przed-migracja-do-3-x\" data-num=1>1. Vue 2.7 &#8211; ostatni przystanek przed migracj\u0105 do 3.x?<\/h2>\n\n\n\n<p>Vue 2.7 to ostatnie wydanie Vue 2 i b\u0119dzie ono wspierane do ko\u0144ca 2023 roku. Mog\u0142oby si\u0119 wydawa\u0107, \u017ce zesp\u00f3\u0142 pracuj\u0105cy nad Vue w pe\u0142ni skupiony jest teraz na rozwoju&nbsp; Vue 3, a Vue 2 traktowane b\u0119dzie po macoszemu. Okazuje si\u0119 jednak, \u017ce Vue 2.7 jest naprawd\u0119 interesuj\u0105ce. W najwi\u0119kszym skr\u00f3cie dodaje ono najwa\u017cniejsze funkcjonalno\u015bci z Vue 3 do Vue 2.<\/p>\n\n\n\n<p>Composition API by\u0142 najwa\u017cniejsz\u0105&nbsp;nowo\u015bci\u0105 w Vue 3 i teraz trafi ono r\u00f3wnie\u017c do Vue 2.7. Na nowe API sk\u0142adaj\u0105 si\u0119 3 inne: Reactivity API (ref i reactive), Lifecycle Hooks (onMounted\/onUnmounted) i Dependency Injection (provide\/inject). Przygl\u0105daj\u0105c si\u0119 ostatecznemu tworowi nie spos\u00f3b nie odnie\u015b\u0107 wra\u017cenia, \u017ce mocno inspirowane jest ono Reactowymi Hookami.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Old Options API\n&lt;script&gt;\nexport default {\n  data() {\n    return {\n      name: &#039;John&#039;,\n    };\n  },\n  mounted() {\n    console.log(`Hello ${this.name}`);\n  },\n};\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;p&gt;Hello {{ name }}!&lt;\/p&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ New Composition API\n&lt;script setup&gt; \nconst name = ref(0);\n\nonMounted(() =&gt; {\n  console.log(`Hello ${name.value}`);\n});\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;p&gt;Hello {{ name }}!&lt;\/p&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"559\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1ts7.jpeg\" alt=\"\" class=\"wp-image-5659\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1ts7.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1ts7-268x300.jpeg 268w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Kiedy do sieci trafi\u0142o pierwsze RFC Composition API mocno podzieli\u0142o ono spo\u0142eczno\u015b\u0107. K\u0142\u00f3tni i kontrowersji by\u0142o tak du\u017co, \u017ce sporo os\u00f3b zacz\u0119\u0142a m\u00f3wi\u0107 o \u201cciemnych wiekach Vue\u201d. Cz\u0119\u015b\u0107 spo\u0142eczno\u015bci ba\u0142a si\u0119, \u017ce Vue staje si\u0119 zbyt podobne do Reacta, podczas gdy inna cz\u0119\u015b\u0107 obawia\u0142a si\u0119 upodobnienia do Angulara. Sporo kontrowersji mia\u0142o r\u00f3wnie\u017c miejsce wok\u00f3\u0142 tego, czy nowe API powinno kanibalizowa\u0107 stare. Ostatecznie Composition API sta\u0142o si\u0119 opcjonalne, a spo\u0142eczno\u015b\u0107 po d\u0142ugich dyskusjach dosz\u0142a do konsensusu. Dzisiaj po prawie 3 latach od pocz\u0105tku ciemnych wiek\u00f3w niewielu ju\u017c o nich pami\u0119ta i niewielu nadal krytykuje nowe API (aczkolwiek przyzna\u0107 nale\u017cy, \u017ce mocno wyewoluowa\u0142o ono od czasu pierwszego RFC).<\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"544\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1tlh.jpeg\" alt=\"\" class=\"wp-image-5660\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1tlh.jpeg 544w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1tlh-300x276.jpeg 300w\" sizes=\"auto, (max-width: 544px) 100vw, 544px\" \/><figcaption>Szczerze m\u00f3wi\u0105c podczas mojej kr\u00f3tkiej przygody z Vue to w\u0142a\u015bnie mnogo\u015b\u0107 API by\u0142a najwi\u0119kszym utrudnieniem. Wszystkie r\u00f3\u017cni\u0105 si\u0119 od siebie znacz\u0105co, \u017cadne nie wysuwa si\u0119 na prowadzenie pod wzgl\u0119dem popularno\u015bci i nie ma \u0142atwego sposobu na \u201cskakanie\u201d mi\u0119dzy nimi w dokumentacji.<\/figcaption><\/figure><\/div>\n\n\n<p>Do Vue 2.7 trafi\u0142y te\u017c dwie funkcjonalno\u015bci \u015bci\u015ble powi\u0105zane z Composition API. Pierwsza z nich to `&lt;script setup&gt;, kt\u00f3re jest s\u0142odzikiem syntaktycznym umo\u017cliwiaj\u0105cym wygodne korzystanie z Composition API. Druga to CSS v-bind, czyli mo\u017cliwo\u015b\u0107 odnoszenia si\u0119 do zmiennych zdefiniowanych w cz\u0119\u015bci skryptowej w pliku CSS.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ New features in Vue 2.7\n&lt;script setup&gt; \/\/ new script setup syntax\nconsole.log(&#039;hello script setup&#039;)\n&lt;\/script&gt;\n\n&lt;script setup&gt;\nconst theme = {\n  color: &#039;red&#039;\n}\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;p&gt;hello&lt;\/p&gt;\n&lt;\/template&gt;\n\n&lt;style scoped&gt;\np {\n  color: v-bind(&#039;theme.color&#039;); \/\/ CSS v-bind\n}\n&lt;\/style&gt;<\/code><\/pre>\n\n\n\n<p>Co wa\u017cne, wszystkie nowe funkcjonalno\u015bci z Vue 2.7 kompatybilne s\u0105 pod wzgl\u0119dem typ\u00f3w z Vue 3.2. Oznacza to, \u017ce otwiera si\u0119 nowa droga migracji do Vue 3. Zespo\u0142y, kt\u00f3re z jakiego\u015b powodu wci\u0105\u017c zablokowane s\u0105 z migracj\u0105, b\u0119d\u0105 mog\u0142y teraz stopniowo przepisywa\u0107 sw\u00f3j kod do nowego API. Kiedy blokery znikn\u0105 powinno to znacz\u0105co przyspieszy\u0107 w\u0142a\u015bciw\u0105 migracj\u0119.<\/p>\n\n\n\n<p>Je\u015bli m\u00f3wimy ju\u017c o migracji do Vue 3, to podczas swojej prelekcji na Vue Amsterdam Evan You (tw\u00f3rca Vue) podzieli\u0142 si\u0119 danymi, z kt\u00f3rych wynika, \u017ce Vue 3 stanowi 25% wszystkich pobra\u0144 Vue. Cz\u0119\u015b\u0107 os\u00f3b interpretuje ten wynik pozytywnie, ale moim zdaniem nale\u017cy na niego patrze\u0107 raczej pesymistycznie. Od wydania Vue 3 min\u0119\u0142y ju\u017c dwa lata, a do ko\u0144ca wsparcia dla Vue 2 zosta\u0142o ju\u017c tylko p\u00f3\u0142tora roku. Czy pozosta\u0142e 75% projekt\u00f3w w tym\u00a0 czasie b\u0119dzie zd\u0105\u017cy si\u0119 zaktualizowa\u0107? \u015amiem w\u0105tpi\u0107.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"432\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-2-3.jpeg\" alt=\"\" class=\"wp-image-5663\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-2-3.jpeg 577w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-2-3-300x225.jpeg 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure><\/div>\n\n\n<p>Na powolny proces migracji do Vue 3 wp\u0142yw mia\u0142o wiele czynnik\u00f3w. Po pierwsze Vue 3 zosta\u0142o napisane w\u0142a\u015bciwie od zera. Nie tylko API wystawione dla klient\u00f3w w wielu miejscach uleg\u0142o modyfikacjom, ale te\u017c zmieni\u0142a si\u0119 wi\u0119kszo\u015b\u0107 wewn\u0119trznej logiki. To z kolei wymusi\u0142o na tw\u00f3rcach bibliotek gruntowne zmiany.&nbsp;<\/p>\n\n\n\n<p>Na dzie\u0144 dzisiejszy wi\u0119kszo\u015b\u0107 bibliotek posiada ju\u017c wersje kompatybilne z Vue 3. Nie przysz\u0142o to jednak bez problem\u00f3w, bo na wi\u0119kszo\u015b\u0107 z nich czeka\u0107 musieli\u015bmy p\u00f3\u0142 roku lub nawet rok. W skrajnych przypadkach, pomimo nieustannie trwaj\u0105cego dewelopmentu, nadal nie doczekali\u015bmy si\u0119 wersji kompatybilnej z Vue 3. Przyk\u0142adowo Nuxt 3, czyli odpowiednik Next.js dla Vue, nadal nie doczeka\u0142 si\u0119 stabilnej wersji\u2026<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"615\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-3.jpeg\" alt=\"\" class=\"wp-image-5664\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-3.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-3-244x300.jpeg 244w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Evan You utrzymuje, \u017ce drastyczne odci\u0119cie si\u0119 od Vue 2 by\u0142o niezb\u0119dne w celu sprawnego developmentu Vue 3. Podkre\u015bla jednak, \u017ce w przeci\u0105gu najbli\u017cszych lat raczej nie nale\u017cy spodziewa\u0107 si\u0119 powt\u00f3rki z rozrywki. Vue 3 stanowi solidn\u0105 podstaw\u0119 do rozwoju. Zesp\u00f3\u0142 Vue zamierza kopiowa\u0107 strategi\u0119 rozwoju od Reacta i Embera i wprowadza\u0107 nowe funkcjonalno\u015bci stopniowo nie \u0142ami\u0105c kluczowych kontrakt\u00f3w.<\/p>\n\n\n\n<p>Innym czynnikiem spowalniaj\u0105cym migracj\u0119 by\u0142 na pewno brak narz\u0119dzi u\u0142atwiaj\u0105cych ten proces w wersji 3.0. Na te poczeka\u0107 musieli\u015bmy do wydania Vue 3.1, kt\u00f3re nast\u0105pi\u0142o prawie rok od opublikowania poprzedniej wersji. Spokojnie mo\u017cna wi\u0119c powiedzie\u0107, \u017ce projekty w Vue 2 mia\u0142y do tej pory rok (a nie dwa) na dokonanie migracji, co troch\u0119 zmienia perspektyw\u0119.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html\">https:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html<\/a><br><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/\">https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/\">https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/<\/a><\/p>\n\n\n\n<h2 id=\"2-najpierw-vue-3-3-pozniej-nowa-strategia-kompilacji\" data-num=2>2. Najpierw Vue 3.3, p\u00f3\u017aniej nowa strategia kompilacji<\/h2>\n\n\n\n<p>Na Vue 3.3 przyjdzie nam jeszcze troch\u0119 poczeka\u0107, bo uka\u017ce si\u0119 ono dopiero pod koniec trzeciego kwarta\u0142u tego roku. Jest jednak na co czeka\u0107, bo b\u0119dzie to najciekawsze wydanie od dw\u00f3ch lat. Je\u015bli wszystko p\u00f3jdzie zgodnie z planem, to ustabilizowane zostanie zar\u00f3wno Suspense jak i Reactivity Transform.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"264\" height=\"480\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-3.gif\" alt=\"\" class=\"wp-image-5665\"\/><figcaption>Deweloperzy Vue, kiedy s\u0142ysz\u0105, \u017ce Suspense i Reactivity Transform zmierzaj\u0105 do Vue 3<\/figcaption><\/figure><\/div>\n\n\n<p>Ostatnimi czasy o Suspense mogli\u015bcie s\u0142ysze\u0107 ca\u0142kiem sporo w kontek\u015bcie Reacta oraz jego wsp\u00f3\u0142bie\u017cnego renderowania. W przypadku Vue mamy do czynienia ze zdecydowanie mniejszym zakresem funkcjonalno\u015bci. W Vue `&lt;Suspense&gt;` umo\u017cliwia\u0107 ma renderowania tymczasowego komponentu do czasu, a\u017c wszystkie asynchroniczne komponenty w drzewie zostan\u0105 za\u0142adowane.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-xml\">&lt;Suspense&gt;\n  &lt;!-- component with nested async dependencies --&gt;\n  &lt;Dashboard \/&gt;\n\n  &lt;!-- loading state via #fallback slot --&gt;\n  &lt;template #fallback&gt;\n    Loading...\n  &lt;\/template&gt;\n&lt;\/Suspense&gt;<\/code><\/pre>\n\n\n\n<p>Drug\u0105 wyczekiwan\u0105 funkcjonalno\u015bci\u0105 jest Reactivity Transform, czyli w skr\u00f3cie szereg usprawnie\u0144 do Composition API. Wszystkie metody z Reactive API (m.in ref i computed) doczekaj\u0105 si\u0119 wersji poprzedzonych $. B\u0119d\u0105 to makra, kt\u00f3re umo\u017cliwi\u0105 \u0142adniejszy i \u0142atwiejszy dost\u0119p do danych, kosztem dodatkowego kroku kompilacji.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Before Vue 3.3\n&lt;script setup&gt;\nimport { ref } from &#039;vue&#039;\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;button @click=&quot;increment&quot;&gt;{{ count }}&lt;\/button&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3\n&lt;script setup&gt;\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script&gt;\n\n&lt;template&gt;\n  &lt;button @click=&quot;increment&quot;&gt;{{ count }}&lt;\/button&gt;\n&lt;\/template&gt;<\/code><\/pre>\n\n\n\n<p>Podczas wspomnianego ju\u017c wcze\u015bniej Vue Amsterdam Evan You postanowi\u0142 podzieli\u0107 si\u0119 te\u017c dalekosi\u0119\u017cnymi planami zespo\u0142u. Jak zaznacza, na razie plany te s\u0105 w powijakach i mog\u0105 jeszcze ulec zmianom. Po zako\u0144czeniu pracy nad Vue 3.3 zesp\u00f3\u0142 rozwa\u017ca skupienie si\u0119 nad now\u0105 strategi\u0105 kompilacji na wz\u00f3r tej znanej z SolidJS. Dla przypomnienia, SolidJS to framework do z\u0142udzenia przypominaj\u0105cy Reacta, ale chwal\u0105cy si\u0119 lepsz\u0105 wydajno\u015bci\u0105 ze wzgl\u0119du na porzucenie Virtual DOM.\u00a0<\/p>\n\n\n\n<p>Now\u0105 strategi\u0119 renderowania w zale\u017cno\u015bci od potrzeb programi\u015bci mogliby zaaplikowa\u0107 albo do ca\u0142ego projektu, albo tylko do poszczeg\u00f3lnych komponent\u00f3w. Jak zapewnia Evan, nowa strategia kompilacji usuwaj\u0105ca VirtualDOM, b\u0119dzie mie\u0107 sporo korzy\u015bci. Po pierwsze, kod niezb\u0119dny do obs\u0142ugi wirtualnego drzewa komponent\u00f3w b\u0119dzie m\u00f3g\u0142 zosta\u0107 usuni\u0119ty z finalnej paczki, co powinno znacz\u0105co j\u0105 odchudzi\u0107. Po drugie, zu\u017cycie pami\u0119ci po stronie klienta powinno zmale\u0107, ze wzgl\u0119du na brak konieczno\u015bci przechowywania aktualnego stanu VirtualDOM w tej\u017ce.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"431\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-4.jpeg\" alt=\"\" class=\"wp-image-5666\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-4.jpeg 579w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-4-300x223.jpeg 300w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><\/figure><\/div>\n\n\n<p>Je\u015bli m\u00f3wimy o przysz\u0142o\u015bci Vue, to nie spos\u00f3b pomin\u0105\u0107 Vite, kt\u00f3ry ostatnio staje si\u0119 wschodz\u0105c\u0105 gwiazd\u0105 frontendowej spo\u0142eczno\u015bci. Pocz\u0105tkowo Vite by\u0142 narz\u0119dziem dedykowanym do budowania aplikacji napisanych we Vue. Rewolucja nadesz\u0142a dopiero wraz z opublikowaniem Vite 2.0, kiedy to sta\u0142 si\u0119 on narz\u0119dziem framework-agnostic. Co prawda narz\u0119dzie nadal budowane by\u0142o g\u0142\u00f3wnie z my\u015bl\u0105 o spo\u0142eczno\u015bci Vue, ale od pocz\u0105tku dostarcza\u0142 sporo dokumentacji dla Reacta. Szybko\u015b\u0107 narz\u0119dzia robi\u0142a wra\u017cenie, wi\u0119c nic dziwnego, \u017ce z czasem zacz\u0119\u0142a kusi\u0107 coraz wi\u0119cej React deweloper\u00f3w. Vite sta\u0142 si\u0119 tak popularny, \u017ce zd\u0105\u017cy\u0142 ju\u017c skanibalizowa\u0107 swojego najwi\u0119kszego konkurenta w postaci Snowplow.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"480\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-5668\"\/><figcaption>Co ciekawe nigdy nie doczekali\u015bmy si\u0119 Vite 1.0, bo powszechnie u\u017cywana w Vue 2 wersja Vite by\u0142a tak naprawd\u0119 Release Candidate, kt\u00f3ry nigdy nie doczeka\u0142 si\u0119 swojej premiery.<\/figcaption><\/figure><\/div>\n\n\n<p>W \u015brodowisku fronendowym na popularno\u015bci zyskuje jeszcze jedna biblioteka wywodz\u0105ca si\u0119 z Vue &#8211; Vitest. Jest to alternatywa typu drop-in dla Jest, kt\u00f3ra pod spodem wykorzystuje Vite. Dzi\u0119ki zastosowaniu Vite ca\u0142o\u015b\u0107 dzia\u0142a niesamowicie szybko. Bior\u0105c pod uwag\u0119 ilo\u015b\u0107 \u015brodk\u00f3w jakie zesp\u00f3\u0142 Vue po\u015bwi\u0119ca na Vite i Vitest, oraz jak mozolnie rozwija si\u0119 Jest, nie zdziwi\u0142bym si\u0119 gdyby w najbli\u017cszych latach uda\u0142o si\u0119 w ko\u0144cu zdetronizowa\u0107 kr\u00f3la JavaScriptowych test\u00f3w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/built-ins\/suspense.html\">https:\/\/vuejs.org\/guide\/built-ins\/suspense.html<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html\">https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html<\/a><br><a href=\"https:\/\/vitest.dev\/\">https:\/\/vitest.dev\/<\/a><br><a href=\"https:\/\/vitejs.dev\/blog\/announcing-vite2.html\">https:\/\/vitejs.dev\/blog\/announcing-vite2.html<\/a><\/p>\n\n\n\n<h2 id=\"bonus-1-co-deweloperzy-mysla-o-vue\" data-num=3>Bonus #1: Co deweloperzy my\u015bl\u0105 o Vue?<\/h2>\n\n\n\n<p>W Vived wr\u0119cz kochamy statystyki. Kiedy w Vue Report 2022 zobaczy\u0142em prawie o\u015bmiostronnicow\u0105 sekcj\u0119 wype\u0142nion\u0105 statystykami i wykresami by\u0142em w si\u00f3dmym niebie. Wi\u0119kszo\u015b\u0107 z nich to co prawda \u201cprzeklejki\u201d z r\u00f3\u017cnych raport\u00f3w na temat Vue, ale bardzo dobrze podsumowywuj\u0105 one stan ekosystemu. Poni\u017cej dziel\u0119 si\u0119 z Wami kilkoma najciekawszymi obserwacjami, ale je\u015bli r\u00f3wnie mocno co ja kochacie cyferki i wykresy, to polecam zajrze\u0107 do oryginalnego raportu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Vue jest wykorzystywane przez zdecydowanie wi\u0119cej aplikacji ni\u017c Angular<\/h3>\n\n\n\n<p>Nie wa\u017cne, czy patrzymy na wyniki og\u00f3lne czy te\u017c zaw\u0119\u017cone do najpopularniejszych stron internetowych, Vue jest zdecydowanie popularniejsze od Angulara. K\u0142\u00f3ci si\u0119 to z wynikami ankiet dotycz\u0105cych u\u017cywanych w ostatnim roku narz\u0119dzi w\u015br\u00f3d deweloper\u00f3w, gdzie Angular nadal nieznacznie wygrywa z Vue.<\/p>\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\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-934x1024.png\" alt=\"\" class=\"wp-image-5670\" width=\"593\" height=\"650\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-934x1024.png 934w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-274x300.png 274w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-768x842.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1.png 940w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">2. Vue zr\u00f3wnuje si\u0119 pod wzgl\u0119dem popularno\u015bci z Angularem<\/h3>\n\n\n\n<p>Niezale\u017cnie od tego kt\u00f3r\u0105 ankiet\u0119 postanowi\u0142em przeanalizowa\u0107, popularno\u015b\u0107 Angulara sukcesywnie maleje, a Vue sukcesywnie ro\u015bnie. W tym roku popularno\u015b\u0107 obu tych framework\u00f3w wyr\u00f3wna\u0142a si\u0119, co oznacza, \u017ce za rok kolejno\u015b\u0107 na frontendowym podium mo\u017ce ulec zmianie.\u00a0<\/p>\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\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1-1024x734.png\" alt=\"\" class=\"wp-image-5672\" width=\"589\" height=\"421\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1-1024x734.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1-300x215.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1.png 1077w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">3. Ro\u015bnie liczba os\u00f3b niezadowolonych z Vue<\/h3>\n\n\n\n<p>Popularno\u015b\u0107 Vue sukcesywnie ro\u015bnie. Niestety przez ostatnie 3 lata sukcesywnie ro\u015bnie r\u00f3wnie\u017c liczba os\u00f3b niezadowolonych z Vue. Wci\u0105\u017c nie s\u0105 to alarmuj\u0105ce liczby, ale ci\u0119\u017cko powiedzie\u0107, czy wynika to z dojrza\u0142o\u015bci frameworka czy te\u017c ze wspomnianych ju\u017c dzi\u015b problem\u00f3w z migracj\u0105 do Vue 3.<\/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\/2022\/07\/Screenshot-2022-07-07-at-15.51.37.png\" alt=\"\" class=\"wp-image-5673\" width=\"647\" height=\"453\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.37.png 663w, https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.37-300x210.png 300w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><\/p>\n\n\n\n<h2 id=\"bonus-2-historia-vue\" data-num=4>Bonus #2: Historia Vue<\/h2>\n\n\n\n<p>Za ka\u017cdym razem, kiedy w przegl\u0105dach wspominam o Vue polecam Wam dokument na temat historii tego frameworku od Honeypot. Nie inaczej b\u0119dzie i tym razem. Je\u015bli jeszcze go nie widzieli\u015bcie i szukacie czego\u015b ciekawego na weekendowe popo\u0142udnie, to naprawd\u0119 warto.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Vue.js: The Documentary\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/OrxmtDw4pVI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Vue od zawsze by\u0142 \u201ctym trzecim\u201d frontendowym frameworkiem. Dzi\u015b rewolucyjna trzecia wersja Vue powoli zyskuje na popularno\u015bci. R\u00f3wnocze\u015bnie coraz bli\u017csza staje si\u0119 perspektywa porzucenia wsparcia dla przestarza\u0142ej wersji drugiej. W kontek\u015bcie tego wydarzenia, zesp\u00f3\u0142 Vue snuje plany jak pokona\u0107 konkurencj\u0119 od Google i Mety. <\/p>\n","protected":false},"author":12,"featured_media":8846,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-9947","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\/07\/FRONTEND-1.png","feature_image_visible":false,"estimated_reading_time":"9","feature_image_blog":{"ID":8847,"id":8847,"title":"download (6)","filename":"download-6.jpeg","filesize":54937,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","link":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/download-6-2-2\/","alt":"","author":"12","description":"","caption":"","name":"download-6-2-2","status":"inherit","uploaded_to":9947,"date":"2022-07-08 09:23:25","modified":"2022-07-08 09:23:25","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/vived.io\/wp-includes\/images\/media\/default.png","width":612,"height":408,"sizes":{"thumbnail":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6-150x150.jpeg","thumbnail-width":150,"thumbnail-height":150,"medium":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6-300x200.jpeg","medium-width":300,"medium-height":200,"medium_large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","medium_large-width":612,"medium_large-height":408,"large":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","large-width":612,"large-height":408,"1536x1536":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","1536x1536-width":612,"1536x1536-height":408,"2048x2048":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","2048x2048-width":612,"2048x2048-height":408,"gform-image-choice-sm":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","gform-image-choice-sm-width":300,"gform-image-choice-sm-height":200,"gform-image-choice-md":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","gform-image-choice-md-width":400,"gform-image-choice-md-height":267,"gform-image-choice-lg":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-6.jpeg","gform-image-choice-lg-width":600,"gform-image-choice-lg-height":400}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - 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\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - Vived\" \/>\n<meta property=\"og:description\" content=\"Vue od zawsze by\u0142 \u201ctym trzecim\u201d frontendowym frameworkiem. Dzi\u015b rewolucyjna trzecia wersja Vue powoli zyskuje na popularno\u015bci. R\u00f3wnocze\u015bnie coraz bli\u017csza staje si\u0119 perspektywa porzucenia wsparcia dla przestarza\u0142ej wersji drugiej. W kontek\u015bcie tego wydarzenia, zesp\u00f3\u0142 Vue snuje plany jak pokona\u0107 konkurencj\u0119 od Google i Mety.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-08T09:28:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-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<meta name=\"twitter:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta &#8211; Frontend Weekly vol. 95\",\"datePublished\":\"2022-07-08T09:28:04+00:00\",\"dateModified\":\"2022-09-19T11:16:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\"},\"wordCount\":1770,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\",\"url\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\",\"name\":\"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png\",\"datePublished\":\"2022-07-08T09:28:04+00:00\",\"dateModified\":\"2022-09-19T11:16:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta &#8211; Frontend Weekly vol. 95\"}]},{\"@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":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - 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\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/","og_locale":"pl_PL","og_type":"article","og_title":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - Vived","og_description":"Vue od zawsze by\u0142 \u201ctym trzecim\u201d frontendowym frameworkiem. Dzi\u015b rewolucyjna trzecia wersja Vue powoli zyskuje na popularno\u015bci. R\u00f3wnocze\u015bnie coraz bli\u017csza staje si\u0119 perspektywa porzucenia wsparcia dla przestarza\u0142ej wersji drugiej. W kontek\u015bcie tego wydarzenia, zesp\u00f3\u0142 Vue snuje plany jak pokona\u0107 konkurencj\u0119 od Google i Mety.","og_url":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/","og_site_name":"Vived","article_published_time":"2022-07-08T09:28:04+00:00","article_modified_time":"2022-09-19T11:16:26+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","twitter_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta &#8211; Frontend Weekly vol. 95","datePublished":"2022-07-08T09:28:04+00:00","dateModified":"2022-09-19T11:16:26+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/"},"wordCount":1770,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/","url":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/","name":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta - Frontend Weekly vol. 95 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","datePublished":"2022-07-08T09:28:04+00:00","dateModified":"2022-09-19T11:16:26+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/FRONTEND-1.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/sprawdzamy-jak-vue-chce-pokonac-angulara-i-reacta-frontend-weekly-vol-95\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Sprawdzamy, jak Vue chce pokona\u0107 Angulara i Reacta &#8211; Frontend Weekly vol. 95"}]},{"@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. Vue 2.7 - ostatni przystanek przed migracj\u0105 do 3.x?<\/h2>\n","innerContent":["\n<h2>1. Vue 2.7 - ostatni przystanek przed migracj\u0105 do 3.x?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Vue 2.7 to ostatnie wydanie Vue 2 i b\u0119dzie ono wspierane do ko\u0144ca 2023 roku. Mog\u0142oby si\u0119 wydawa\u0107, \u017ce zesp\u00f3\u0142 pracuj\u0105cy nad Vue w pe\u0142ni skupiony jest teraz na rozwoju&nbsp; Vue 3, a Vue 2 traktowane b\u0119dzie po macoszemu. Okazuje si\u0119 jednak, \u017ce Vue 2.7 jest naprawd\u0119 interesuj\u0105ce. W najwi\u0119kszym skr\u00f3cie dodaje ono najwa\u017cniejsze funkcjonalno\u015bci z Vue 3 do Vue 2.<\/p>\n","innerContent":["\n<p>Vue 2.7 to ostatnie wydanie Vue 2 i b\u0119dzie ono wspierane do ko\u0144ca 2023 roku. Mog\u0142oby si\u0119 wydawa\u0107, \u017ce zesp\u00f3\u0142 pracuj\u0105cy nad Vue w pe\u0142ni skupiony jest teraz na rozwoju&nbsp; Vue 3, a Vue 2 traktowane b\u0119dzie po macoszemu. Okazuje si\u0119 jednak, \u017ce Vue 2.7 jest naprawd\u0119 interesuj\u0105ce. W najwi\u0119kszym skr\u00f3cie dodaje ono najwa\u017cniejsze funkcjonalno\u015bci z Vue 3 do Vue 2.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Composition API by\u0142 najwa\u017cniejsz\u0105&nbsp;nowo\u015bci\u0105 w Vue 3 i teraz trafi ono r\u00f3wnie\u017c do Vue 2.7. Na nowe API sk\u0142adaj\u0105 si\u0119 3 inne: Reactivity API (ref i reactive), Lifecycle Hooks (onMounted\/onUnmounted) i Dependency Injection (provide\/inject). Przygl\u0105daj\u0105c si\u0119 ostatecznemu tworowi nie spos\u00f3b nie odnie\u015b\u0107 wra\u017cenia, \u017ce mocno inspirowane jest ono Reactowymi Hookami.<\/p>\n","innerContent":["\n<p>Composition API by\u0142 najwa\u017cniejsz\u0105&nbsp;nowo\u015bci\u0105 w Vue 3 i teraz trafi ono r\u00f3wnie\u017c do Vue 2.7. Na nowe API sk\u0142adaj\u0105 si\u0119 3 inne: Reactivity API (ref i reactive), Lifecycle Hooks (onMounted\/onUnmounted) i Dependency Injection (provide\/inject). Przygl\u0105daj\u0105c si\u0119 ostatecznemu tworowi nie spos\u00f3b nie odnie\u015b\u0107 wra\u017cenia, \u017ce mocno inspirowane jest ono Reactowymi Hookami.<\/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\">\/\/ Old Options API\n&lt;script>\nexport default {\n  data() {\n    return {\n      name: 'John',\n    };\n  },\n  mounted() {\n    console.log(`Hello ${this.name}`);\n  },\n};\n&lt;\/script>\n\n&lt;template>\n  &lt;p>Hello {{ name }}!&lt;\/p>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Old Options API\n&lt;script>\nexport default {\n  data() {\n    return {\n      name: 'John',\n    };\n  },\n  mounted() {\n    console.log(`Hello ${this.name}`);\n  },\n};\n&lt;\/script>\n\n&lt;template>\n  &lt;p>Hello {{ name }}!&lt;\/p>\n&lt;\/template><\/code><\/pre>\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\">\/\/ New Composition API\n&lt;script setup> \nconst name = ref(0);\n\nonMounted(() => {\n  console.log(`Hello ${name.value}`);\n});\n&lt;\/script>\n\n&lt;template>\n  &lt;p>Hello {{ name }}!&lt;\/p>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ New Composition API\n&lt;script setup> \nconst name = ref(0);\n\nonMounted(() => {\n  console.log(`Hello ${name.value}`);\n});\n&lt;\/script>\n\n&lt;template>\n  &lt;p>Hello {{ name }}!&lt;\/p>\n&lt;\/template><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5659,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1ts7.jpeg\" alt=\"\" class=\"wp-image-5659\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1ts7.jpeg\" alt=\"\" class=\"wp-image-5659\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Kiedy do sieci trafi\u0142o pierwsze RFC Composition API mocno podzieli\u0142o ono spo\u0142eczno\u015b\u0107. K\u0142\u00f3tni i kontrowersji by\u0142o tak du\u017co, \u017ce sporo os\u00f3b zacz\u0119\u0142a m\u00f3wi\u0107 o \u201cciemnych wiekach Vue\u201d. Cz\u0119\u015b\u0107 spo\u0142eczno\u015bci ba\u0142a si\u0119, \u017ce Vue staje si\u0119 zbyt podobne do Reacta, podczas gdy inna cz\u0119\u015b\u0107 obawia\u0142a si\u0119 upodobnienia do Angulara. Sporo kontrowersji mia\u0142o r\u00f3wnie\u017c miejsce wok\u00f3\u0142 tego, czy nowe API powinno kanibalizowa\u0107 stare. Ostatecznie Composition API sta\u0142o si\u0119 opcjonalne, a spo\u0142eczno\u015b\u0107 po d\u0142ugich dyskusjach dosz\u0142a do konsensusu. Dzisiaj po prawie 3 latach od pocz\u0105tku ciemnych wiek\u00f3w niewielu ju\u017c o nich pami\u0119ta i niewielu nadal krytykuje nowe API (aczkolwiek przyzna\u0107 nale\u017cy, \u017ce mocno wyewoluowa\u0142o ono od czasu pierwszego RFC).<\/p>\n","innerContent":["\n<p>Kiedy do sieci trafi\u0142o pierwsze RFC Composition API mocno podzieli\u0142o ono spo\u0142eczno\u015b\u0107. K\u0142\u00f3tni i kontrowersji by\u0142o tak du\u017co, \u017ce sporo os\u00f3b zacz\u0119\u0142a m\u00f3wi\u0107 o \u201cciemnych wiekach Vue\u201d. Cz\u0119\u015b\u0107 spo\u0142eczno\u015bci ba\u0142a si\u0119, \u017ce Vue staje si\u0119 zbyt podobne do Reacta, podczas gdy inna cz\u0119\u015b\u0107 obawia\u0142a si\u0119 upodobnienia do Angulara. Sporo kontrowersji mia\u0142o r\u00f3wnie\u017c miejsce wok\u00f3\u0142 tego, czy nowe API powinno kanibalizowa\u0107 stare. Ostatecznie Composition API sta\u0142o si\u0119 opcjonalne, a spo\u0142eczno\u015b\u0107 po d\u0142ugich dyskusjach dosz\u0142a do konsensusu. Dzisiaj po prawie 3 latach od pocz\u0105tku ciemnych wiek\u00f3w niewielu ju\u017c o nich pami\u0119ta i niewielu nadal krytykuje nowe API (aczkolwiek przyzna\u0107 nale\u017cy, \u017ce mocno wyewoluowa\u0142o ono od czasu pierwszego RFC).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5660,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1tlh.jpeg\" alt=\"\" class=\"wp-image-5660\"\/><figcaption>Szczerze m\u00f3wi\u0105c podczas mojej kr\u00f3tkiej przygody z Vue to w\u0142a\u015bnie mnogo\u015b\u0107 API by\u0142a najwi\u0119kszym utrudnieniem. Wszystkie r\u00f3\u017cni\u0105 si\u0119 od siebie znacz\u0105co, \u017cadne nie wysuwa si\u0119 na prowadzenie pod wzgl\u0119dem popularno\u015bci i nie ma \u0142atwego sposobu na \u201cskakanie\u201d mi\u0119dzy nimi w dokumentacji.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/6m1tlh.jpeg\" alt=\"\" class=\"wp-image-5660\"\/><figcaption>Szczerze m\u00f3wi\u0105c podczas mojej kr\u00f3tkiej przygody z Vue to w\u0142a\u015bnie mnogo\u015b\u0107 API by\u0142a najwi\u0119kszym utrudnieniem. Wszystkie r\u00f3\u017cni\u0105 si\u0119 od siebie znacz\u0105co, \u017cadne nie wysuwa si\u0119 na prowadzenie pod wzgl\u0119dem popularno\u015bci i nie ma \u0142atwego sposobu na \u201cskakanie\u201d mi\u0119dzy nimi w dokumentacji.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Do Vue 2.7 trafi\u0142y te\u017c dwie funkcjonalno\u015bci \u015bci\u015ble powi\u0105zane z Composition API. Pierwsza z nich to `&lt;script setup&gt;, kt\u00f3re jest s\u0142odzikiem syntaktycznym umo\u017cliwiaj\u0105cym wygodne korzystanie z Composition API. Druga to CSS v-bind, czyli mo\u017cliwo\u015b\u0107 odnoszenia si\u0119 do zmiennych zdefiniowanych w cz\u0119\u015bci skryptowej w pliku CSS.<\/p>\n","innerContent":["\n<p>Do Vue 2.7 trafi\u0142y te\u017c dwie funkcjonalno\u015bci \u015bci\u015ble powi\u0105zane z Composition API. Pierwsza z nich to `&lt;script setup&gt;, kt\u00f3re jest s\u0142odzikiem syntaktycznym umo\u017cliwiaj\u0105cym wygodne korzystanie z Composition API. Druga to CSS v-bind, czyli mo\u017cliwo\u015b\u0107 odnoszenia si\u0119 do zmiennych zdefiniowanych w cz\u0119\u015bci skryptowej w pliku CSS.<\/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\">\/\/ New features in Vue 2.7\n&lt;script setup> \/\/ new script setup syntax\nconsole.log('hello script setup')\n&lt;\/script>\n\n&lt;script setup>\nconst theme = {\n  color: 'red'\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;p>hello&lt;\/p>\n&lt;\/template>\n\n&lt;style scoped>\np {\n  color: v-bind('theme.color'); \/\/ CSS v-bind\n}\n&lt;\/style><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ New features in Vue 2.7\n&lt;script setup> \/\/ new script setup syntax\nconsole.log('hello script setup')\n&lt;\/script>\n\n&lt;script setup>\nconst theme = {\n  color: 'red'\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;p>hello&lt;\/p>\n&lt;\/template>\n\n&lt;style scoped>\np {\n  color: v-bind('theme.color'); \/\/ CSS v-bind\n}\n&lt;\/style><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co wa\u017cne, wszystkie nowe funkcjonalno\u015bci z Vue 2.7 kompatybilne s\u0105 pod wzgl\u0119dem typ\u00f3w z Vue 3.2. Oznacza to, \u017ce otwiera si\u0119 nowa droga migracji do Vue 3. Zespo\u0142y, kt\u00f3re z jakiego\u015b powodu wci\u0105\u017c zablokowane s\u0105 z migracj\u0105, b\u0119d\u0105 mog\u0142y teraz stopniowo przepisywa\u0107 sw\u00f3j kod do nowego API. Kiedy blokery znikn\u0105 powinno to znacz\u0105co przyspieszy\u0107 w\u0142a\u015bciw\u0105 migracj\u0119.<\/p>\n","innerContent":["\n<p>Co wa\u017cne, wszystkie nowe funkcjonalno\u015bci z Vue 2.7 kompatybilne s\u0105 pod wzgl\u0119dem typ\u00f3w z Vue 3.2. Oznacza to, \u017ce otwiera si\u0119 nowa droga migracji do Vue 3. Zespo\u0142y, kt\u00f3re z jakiego\u015b powodu wci\u0105\u017c zablokowane s\u0105 z migracj\u0105, b\u0119d\u0105 mog\u0142y teraz stopniowo przepisywa\u0107 sw\u00f3j kod do nowego API. Kiedy blokery znikn\u0105 powinno to znacz\u0105co przyspieszy\u0107 w\u0142a\u015bciw\u0105 migracj\u0119.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli m\u00f3wimy ju\u017c o migracji do Vue 3, to podczas swojej prelekcji na Vue Amsterdam Evan You (tw\u00f3rca Vue) podzieli\u0142 si\u0119 danymi, z kt\u00f3rych wynika, \u017ce Vue 3 stanowi 25% wszystkich pobra\u0144 Vue. Cz\u0119\u015b\u0107 os\u00f3b interpretuje ten wynik pozytywnie, ale moim zdaniem nale\u017cy na niego patrze\u0107 raczej pesymistycznie. Od wydania Vue 3 min\u0119\u0142y ju\u017c dwa lata, a do ko\u0144ca wsparcia dla Vue 2 zosta\u0142o ju\u017c tylko p\u00f3\u0142tora roku. Czy pozosta\u0142e 75% projekt\u00f3w w tym\u00a0 czasie b\u0119dzie zd\u0105\u017cy si\u0119 zaktualizowa\u0107? \u015amiem w\u0105tpi\u0107.<\/p>\n","innerContent":["\n<p>Je\u015bli m\u00f3wimy ju\u017c o migracji do Vue 3, to podczas swojej prelekcji na Vue Amsterdam Evan You (tw\u00f3rca Vue) podzieli\u0142 si\u0119 danymi, z kt\u00f3rych wynika, \u017ce Vue 3 stanowi 25% wszystkich pobra\u0144 Vue. Cz\u0119\u015b\u0107 os\u00f3b interpretuje ten wynik pozytywnie, ale moim zdaniem nale\u017cy na niego patrze\u0107 raczej pesymistycznie. Od wydania Vue 3 min\u0119\u0142y ju\u017c dwa lata, a do ko\u0144ca wsparcia dla Vue 2 zosta\u0142o ju\u017c tylko p\u00f3\u0142tora roku. Czy pozosta\u0142e 75% projekt\u00f3w w tym\u00a0 czasie b\u0119dzie zd\u0105\u017cy si\u0119 zaktualizowa\u0107? \u015amiem w\u0105tpi\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5663,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-2-3.jpeg\" alt=\"\" class=\"wp-image-5663\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-2-3.jpeg\" alt=\"\" class=\"wp-image-5663\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na powolny proces migracji do Vue 3 wp\u0142yw mia\u0142o wiele czynnik\u00f3w. Po pierwsze Vue 3 zosta\u0142o napisane w\u0142a\u015bciwie od zera. Nie tylko API wystawione dla klient\u00f3w w wielu miejscach uleg\u0142o modyfikacjom, ale te\u017c zmieni\u0142a si\u0119 wi\u0119kszo\u015b\u0107 wewn\u0119trznej logiki. To z kolei wymusi\u0142o na tw\u00f3rcach bibliotek gruntowne zmiany.&nbsp;<\/p>\n","innerContent":["\n<p>Na powolny proces migracji do Vue 3 wp\u0142yw mia\u0142o wiele czynnik\u00f3w. Po pierwsze Vue 3 zosta\u0142o napisane w\u0142a\u015bciwie od zera. Nie tylko API wystawione dla klient\u00f3w w wielu miejscach uleg\u0142o modyfikacjom, ale te\u017c zmieni\u0142a si\u0119 wi\u0119kszo\u015b\u0107 wewn\u0119trznej logiki. To z kolei wymusi\u0142o na tw\u00f3rcach bibliotek gruntowne zmiany.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na dzie\u0144 dzisiejszy wi\u0119kszo\u015b\u0107 bibliotek posiada ju\u017c wersje kompatybilne z Vue 3. Nie przysz\u0142o to jednak bez problem\u00f3w, bo na wi\u0119kszo\u015b\u0107 z nich czeka\u0107 musieli\u015bmy p\u00f3\u0142 roku lub nawet rok. W skrajnych przypadkach, pomimo nieustannie trwaj\u0105cego dewelopmentu, nadal nie doczekali\u015bmy si\u0119 wersji kompatybilnej z Vue 3. Przyk\u0142adowo Nuxt 3, czyli odpowiednik Next.js dla Vue, nadal nie doczeka\u0142 si\u0119 stabilnej wersji\u2026<\/p>\n","innerContent":["\n<p>Na dzie\u0144 dzisiejszy wi\u0119kszo\u015b\u0107 bibliotek posiada ju\u017c wersje kompatybilne z Vue 3. Nie przysz\u0142o to jednak bez problem\u00f3w, bo na wi\u0119kszo\u015b\u0107 z nich czeka\u0107 musieli\u015bmy p\u00f3\u0142 roku lub nawet rok. W skrajnych przypadkach, pomimo nieustannie trwaj\u0105cego dewelopmentu, nadal nie doczekali\u015bmy si\u0119 wersji kompatybilnej z Vue 3. Przyk\u0142adowo Nuxt 3, czyli odpowiednik Next.js dla Vue, nadal nie doczeka\u0142 si\u0119 stabilnej wersji\u2026<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5664,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-3.jpeg\" alt=\"\" class=\"wp-image-5664\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-3.jpeg\" alt=\"\" class=\"wp-image-5664\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Evan You utrzymuje, \u017ce drastyczne odci\u0119cie si\u0119 od Vue 2 by\u0142o niezb\u0119dne w celu sprawnego developmentu Vue 3. Podkre\u015bla jednak, \u017ce w przeci\u0105gu najbli\u017cszych lat raczej nie nale\u017cy spodziewa\u0107 si\u0119 powt\u00f3rki z rozrywki. Vue 3 stanowi solidn\u0105 podstaw\u0119 do rozwoju. Zesp\u00f3\u0142 Vue zamierza kopiowa\u0107 strategi\u0119 rozwoju od Reacta i Embera i wprowadza\u0107 nowe funkcjonalno\u015bci stopniowo nie \u0142ami\u0105c kluczowych kontrakt\u00f3w.<\/p>\n","innerContent":["\n<p>Evan You utrzymuje, \u017ce drastyczne odci\u0119cie si\u0119 od Vue 2 by\u0142o niezb\u0119dne w celu sprawnego developmentu Vue 3. Podkre\u015bla jednak, \u017ce w przeci\u0105gu najbli\u017cszych lat raczej nie nale\u017cy spodziewa\u0107 si\u0119 powt\u00f3rki z rozrywki. Vue 3 stanowi solidn\u0105 podstaw\u0119 do rozwoju. Zesp\u00f3\u0142 Vue zamierza kopiowa\u0107 strategi\u0119 rozwoju od Reacta i Embera i wprowadza\u0107 nowe funkcjonalno\u015bci stopniowo nie \u0142ami\u0105c kluczowych kontrakt\u00f3w.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Innym czynnikiem spowalniaj\u0105cym migracj\u0119 by\u0142 na pewno brak narz\u0119dzi u\u0142atwiaj\u0105cych ten proces w wersji 3.0. Na te poczeka\u0107 musieli\u015bmy do wydania Vue 3.1, kt\u00f3re nast\u0105pi\u0142o prawie rok od opublikowania poprzedniej wersji. Spokojnie mo\u017cna wi\u0119c powiedzie\u0107, \u017ce projekty w Vue 2 mia\u0142y do tej pory rok (a nie dwa) na dokonanie migracji, co troch\u0119 zmienia perspektyw\u0119.<\/p>\n","innerContent":["\n<p>Innym czynnikiem spowalniaj\u0105cym migracj\u0119 by\u0142 na pewno brak narz\u0119dzi u\u0142atwiaj\u0105cych ten proces w wersji 3.0. Na te poczeka\u0107 musieli\u015bmy do wydania Vue 3.1, kt\u00f3re nast\u0105pi\u0142o prawie rok od opublikowania poprzedniej wersji. Spokojnie mo\u017cna wi\u0119c powiedzie\u0107, \u017ce projekty w Vue 2 mia\u0142y do tej pory rok (a nie dwa) na dokonanie migracji, co troch\u0119 zmienia perspektyw\u0119.<\/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:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html\">https:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html<\/a><br><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/\">https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/\">https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html\">https:\/\/blog.vuejs.org\/posts\/vue-2-7-naruto.html<\/a><br><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/\">https:\/\/markus.oberlehner.net\/blog\/vue-3-composition-api-vs-options-api\/<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/\">https:\/\/blog.ninja-squad.com\/2021\/06\/07\/what-is-new-vue-3.1\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Najpierw Vue 3.3, p\u00f3\u017aniej nowa strategia kompilacji<\/h2>\n","innerContent":["\n<h2>2. Najpierw Vue 3.3, p\u00f3\u017aniej nowa strategia kompilacji<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na Vue 3.3 przyjdzie nam jeszcze troch\u0119 poczeka\u0107, bo uka\u017ce si\u0119 ono dopiero pod koniec trzeciego kwarta\u0142u tego roku. Jest jednak na co czeka\u0107, bo b\u0119dzie to najciekawsze wydanie od dw\u00f3ch lat. Je\u015bli wszystko p\u00f3jdzie zgodnie z planem, to ustabilizowane zostanie zar\u00f3wno Suspense jak i Reactivity Transform.\u00a0<\/p>\n","innerContent":["\n<p>Na Vue 3.3 przyjdzie nam jeszcze troch\u0119 poczeka\u0107, bo uka\u017ce si\u0119 ono dopiero pod koniec trzeciego kwarta\u0142u tego roku. Jest jednak na co czeka\u0107, bo b\u0119dzie to najciekawsze wydanie od dw\u00f3ch lat. Je\u015bli wszystko p\u00f3jdzie zgodnie z planem, to ustabilizowane zostanie zar\u00f3wno Suspense jak i Reactivity Transform.\u00a0<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5665,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-3.gif\" alt=\"\" class=\"wp-image-5665\"\/><figcaption>Deweloperzy Vue, kiedy s\u0142ysz\u0105, \u017ce Suspense i Reactivity Transform zmierzaj\u0105 do Vue 3<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-3.gif\" alt=\"\" class=\"wp-image-5665\"\/><figcaption>Deweloperzy Vue, kiedy s\u0142ysz\u0105, \u017ce Suspense i Reactivity Transform zmierzaj\u0105 do Vue 3<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnimi czasy o Suspense mogli\u015bcie s\u0142ysze\u0107 ca\u0142kiem sporo w kontek\u015bcie Reacta oraz jego wsp\u00f3\u0142bie\u017cnego renderowania. W przypadku Vue mamy do czynienia ze zdecydowanie mniejszym zakresem funkcjonalno\u015bci. W Vue `&lt;Suspense&gt;` umo\u017cliwia\u0107 ma renderowania tymczasowego komponentu do czasu, a\u017c wszystkie asynchroniczne komponenty w drzewie zostan\u0105 za\u0142adowane.<\/p>\n","innerContent":["\n<p>Ostatnimi czasy o Suspense mogli\u015bcie s\u0142ysze\u0107 ca\u0142kiem sporo w kontek\u015bcie Reacta oraz jego wsp\u00f3\u0142bie\u017cnego renderowania. W przypadku Vue mamy do czynienia ze zdecydowanie mniejszym zakresem funkcjonalno\u015bci. W Vue `&lt;Suspense&gt;` umo\u017cliwia\u0107 ma renderowania tymczasowego komponentu do czasu, a\u017c wszystkie asynchroniczne komponenty w drzewie zostan\u0105 za\u0142adowane.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"xml"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-xml\">&lt;Suspense>\n  &lt;!-- component with nested async dependencies -->\n  &lt;Dashboard \/>\n\n  &lt;!-- loading state via #fallback slot -->\n  &lt;template #fallback>\n    Loading...\n  &lt;\/template>\n&lt;\/Suspense><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-xml\">&lt;Suspense>\n  &lt;!-- component with nested async dependencies -->\n  &lt;Dashboard \/>\n\n  &lt;!-- loading state via #fallback slot -->\n  &lt;template #fallback>\n    Loading...\n  &lt;\/template>\n&lt;\/Suspense><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Drug\u0105 wyczekiwan\u0105 funkcjonalno\u015bci\u0105 jest Reactivity Transform, czyli w skr\u00f3cie szereg usprawnie\u0144 do Composition API. Wszystkie metody z Reactive API (m.in ref i computed) doczekaj\u0105 si\u0119 wersji poprzedzonych $. B\u0119d\u0105 to makra, kt\u00f3re umo\u017cliwi\u0105 \u0142adniejszy i \u0142atwiejszy dost\u0119p do danych, kosztem dodatkowego kroku kompilacji.<\/p>\n","innerContent":["\n<p>Drug\u0105 wyczekiwan\u0105 funkcjonalno\u015bci\u0105 jest Reactivity Transform, czyli w skr\u00f3cie szereg usprawnie\u0144 do Composition API. Wszystkie metody z Reactive API (m.in ref i computed) doczekaj\u0105 si\u0119 wersji poprzedzonych $. B\u0119d\u0105 to makra, kt\u00f3re umo\u017cliwi\u0105 \u0142adniejszy i \u0142atwiejszy dost\u0119p do danych, kosztem dodatkowego kroku kompilacji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Before Vue 3.3\n&lt;script setup>\nimport { ref } from 'vue'\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Before Vue 3.3\n&lt;script setup>\nimport { ref } from 'vue'\n\nlet count = ref(0)\n\nconsole.log(count.value)\n\nfunction increment() {\n  count.value++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3\n&lt;script setup>\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">\/\/ Vue 3.3\n&lt;script setup>\nlet count = $ref(0)\n\nconsole.log(count)\n\nfunction increment() {\n  count++\n}\n&lt;\/script>\n\n&lt;template>\n  &lt;button @click=\"increment\">{{ count }}&lt;\/button>\n&lt;\/template><\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Podczas wspomnianego ju\u017c wcze\u015bniej Vue Amsterdam Evan You postanowi\u0142 podzieli\u0107 si\u0119 te\u017c dalekosi\u0119\u017cnymi planami zespo\u0142u. Jak zaznacza, na razie plany te s\u0105 w powijakach i mog\u0105 jeszcze ulec zmianom. Po zako\u0144czeniu pracy nad Vue 3.3 zesp\u00f3\u0142 rozwa\u017ca skupienie si\u0119 nad now\u0105 strategi\u0105 kompilacji na wz\u00f3r tej znanej z SolidJS. Dla przypomnienia, SolidJS to framework do z\u0142udzenia przypominaj\u0105cy Reacta, ale chwal\u0105cy si\u0119 lepsz\u0105 wydajno\u015bci\u0105 ze wzgl\u0119du na porzucenie Virtual DOM.\u00a0<\/p>\n","innerContent":["\n<p>Podczas wspomnianego ju\u017c wcze\u015bniej Vue Amsterdam Evan You postanowi\u0142 podzieli\u0107 si\u0119 te\u017c dalekosi\u0119\u017cnymi planami zespo\u0142u. Jak zaznacza, na razie plany te s\u0105 w powijakach i mog\u0105 jeszcze ulec zmianom. Po zako\u0144czeniu pracy nad Vue 3.3 zesp\u00f3\u0142 rozwa\u017ca skupienie si\u0119 nad now\u0105 strategi\u0105 kompilacji na wz\u00f3r tej znanej z SolidJS. Dla przypomnienia, SolidJS to framework do z\u0142udzenia przypominaj\u0105cy Reacta, ale chwal\u0105cy si\u0119 lepsz\u0105 wydajno\u015bci\u0105 ze wzgl\u0119du na porzucenie Virtual DOM.\u00a0<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Now\u0105 strategi\u0119 renderowania w zale\u017cno\u015bci od potrzeb programi\u015bci mogliby zaaplikowa\u0107 albo do ca\u0142ego projektu, albo tylko do poszczeg\u00f3lnych komponent\u00f3w. Jak zapewnia Evan, nowa strategia kompilacji usuwaj\u0105ca VirtualDOM, b\u0119dzie mie\u0107 sporo korzy\u015bci. Po pierwsze, kod niezb\u0119dny do obs\u0142ugi wirtualnego drzewa komponent\u00f3w b\u0119dzie m\u00f3g\u0142 zosta\u0107 usuni\u0119ty z finalnej paczki, co powinno znacz\u0105co j\u0105 odchudzi\u0107. Po drugie, zu\u017cycie pami\u0119ci po stronie klienta powinno zmale\u0107, ze wzgl\u0119du na brak konieczno\u015bci przechowywania aktualnego stanu VirtualDOM w tej\u017ce.<\/p>\n","innerContent":["\n<p>Now\u0105 strategi\u0119 renderowania w zale\u017cno\u015bci od potrzeb programi\u015bci mogliby zaaplikowa\u0107 albo do ca\u0142ego projektu, albo tylko do poszczeg\u00f3lnych komponent\u00f3w. Jak zapewnia Evan, nowa strategia kompilacji usuwaj\u0105ca VirtualDOM, b\u0119dzie mie\u0107 sporo korzy\u015bci. Po pierwsze, kod niezb\u0119dny do obs\u0142ugi wirtualnego drzewa komponent\u00f3w b\u0119dzie m\u00f3g\u0142 zosta\u0107 usuni\u0119ty z finalnej paczki, co powinno znacz\u0105co j\u0105 odchudzi\u0107. Po drugie, zu\u017cycie pami\u0119ci po stronie klienta powinno zmale\u0107, ze wzgl\u0119du na brak konieczno\u015bci przechowywania aktualnego stanu VirtualDOM w tej\u017ce.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5666,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-4.jpeg\" alt=\"\" class=\"wp-image-5666\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/download-4.jpeg\" alt=\"\" class=\"wp-image-5666\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli m\u00f3wimy o przysz\u0142o\u015bci Vue, to nie spos\u00f3b pomin\u0105\u0107 Vite, kt\u00f3ry ostatnio staje si\u0119 wschodz\u0105c\u0105 gwiazd\u0105 frontendowej spo\u0142eczno\u015bci. Pocz\u0105tkowo Vite by\u0142 narz\u0119dziem dedykowanym do budowania aplikacji napisanych we Vue. Rewolucja nadesz\u0142a dopiero wraz z opublikowaniem Vite 2.0, kiedy to sta\u0142 si\u0119 on narz\u0119dziem framework-agnostic. Co prawda narz\u0119dzie nadal budowane by\u0142o g\u0142\u00f3wnie z my\u015bl\u0105 o spo\u0142eczno\u015bci Vue, ale od pocz\u0105tku dostarcza\u0142 sporo dokumentacji dla Reacta. Szybko\u015b\u0107 narz\u0119dzia robi\u0142a wra\u017cenie, wi\u0119c nic dziwnego, \u017ce z czasem zacz\u0119\u0142a kusi\u0107 coraz wi\u0119cej React deweloper\u00f3w. Vite sta\u0142 si\u0119 tak popularny, \u017ce zd\u0105\u017cy\u0142 ju\u017c skanibalizowa\u0107 swojego najwi\u0119kszego konkurenta w postaci Snowplow.<\/p>\n","innerContent":["\n<p>Je\u015bli m\u00f3wimy o przysz\u0142o\u015bci Vue, to nie spos\u00f3b pomin\u0105\u0107 Vite, kt\u00f3ry ostatnio staje si\u0119 wschodz\u0105c\u0105 gwiazd\u0105 frontendowej spo\u0142eczno\u015bci. Pocz\u0105tkowo Vite by\u0142 narz\u0119dziem dedykowanym do budowania aplikacji napisanych we Vue. Rewolucja nadesz\u0142a dopiero wraz z opublikowaniem Vite 2.0, kiedy to sta\u0142 si\u0119 on narz\u0119dziem framework-agnostic. Co prawda narz\u0119dzie nadal budowane by\u0142o g\u0142\u00f3wnie z my\u015bl\u0105 o spo\u0142eczno\u015bci Vue, ale od pocz\u0105tku dostarcza\u0142 sporo dokumentacji dla Reacta. Szybko\u015b\u0107 narz\u0119dzia robi\u0142a wra\u017cenie, wi\u0119c nic dziwnego, \u017ce z czasem zacz\u0119\u0142a kusi\u0107 coraz wi\u0119cej React deweloper\u00f3w. Vite sta\u0142 si\u0119 tak popularny, \u017ce zd\u0105\u017cy\u0142 ju\u017c skanibalizowa\u0107 swojego najwi\u0119kszego konkurenta w postaci Snowplow.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5668,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-5668\"\/><figcaption>Co ciekawe nigdy nie doczekali\u015bmy si\u0119 Vite 1.0, bo powszechnie u\u017cywana w Vue 2 wersja Vite by\u0142a tak naprawd\u0119 Release Candidate, kt\u00f3ry nigdy nie doczeka\u0142 si\u0119 swojej premiery.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-5668\"\/><figcaption>Co ciekawe nigdy nie doczekali\u015bmy si\u0119 Vite 1.0, bo powszechnie u\u017cywana w Vue 2 wersja Vite by\u0142a tak naprawd\u0119 Release Candidate, kt\u00f3ry nigdy nie doczeka\u0142 si\u0119 swojej premiery.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W \u015brodowisku fronendowym na popularno\u015bci zyskuje jeszcze jedna biblioteka wywodz\u0105ca si\u0119 z Vue - Vitest. Jest to alternatywa typu drop-in dla Jest, kt\u00f3ra pod spodem wykorzystuje Vite. Dzi\u0119ki zastosowaniu Vite ca\u0142o\u015b\u0107 dzia\u0142a niesamowicie szybko. Bior\u0105c pod uwag\u0119 ilo\u015b\u0107 \u015brodk\u00f3w jakie zesp\u00f3\u0142 Vue po\u015bwi\u0119ca na Vite i Vitest, oraz jak mozolnie rozwija si\u0119 Jest, nie zdziwi\u0142bym si\u0119 gdyby w najbli\u017cszych latach uda\u0142o si\u0119 w ko\u0144cu zdetronizowa\u0107 kr\u00f3la JavaScriptowych test\u00f3w.<\/p>\n","innerContent":["\n<p>W \u015brodowisku fronendowym na popularno\u015bci zyskuje jeszcze jedna biblioteka wywodz\u0105ca si\u0119 z Vue - Vitest. Jest to alternatywa typu drop-in dla Jest, kt\u00f3ra pod spodem wykorzystuje Vite. Dzi\u0119ki zastosowaniu Vite ca\u0142o\u015b\u0107 dzia\u0142a niesamowicie szybko. Bior\u0105c pod uwag\u0119 ilo\u015b\u0107 \u015brodk\u00f3w jakie zesp\u00f3\u0142 Vue po\u015bwi\u0119ca na Vite i Vitest, oraz jak mozolnie rozwija si\u0119 Jest, nie zdziwi\u0142bym si\u0119 gdyby w najbli\u017cszych latach uda\u0142o si\u0119 w ko\u0144cu zdetronizowa\u0107 kr\u00f3la JavaScriptowych test\u00f3w.<\/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:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/built-ins\/suspense.html\">https:\/\/vuejs.org\/guide\/built-ins\/suspense.html<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html\">https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html<\/a><br><a href=\"https:\/\/vitest.dev\/\">https:\/\/vitest.dev\/<\/a><br><a href=\"https:\/\/vitejs.dev\/blog\/announcing-vite2.html\">https:\/\/vitejs.dev\/blog\/announcing-vite2.html<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><br><a href=\"https:\/\/youtu.be\/1ntuhMzAzU8\">https:\/\/youtu.be\/1ntuhMzAzU8<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/built-ins\/suspense.html\">https:\/\/vuejs.org\/guide\/built-ins\/suspense.html<\/a><br><a href=\"https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html\">https:\/\/vuejs.org\/guide\/extras\/reactivity-transform.html<\/a><br><a href=\"https:\/\/vitest.dev\/\">https:\/\/vitest.dev\/<\/a><br><a href=\"https:\/\/vitejs.dev\/blog\/announcing-vite2.html\">https:\/\/vitejs.dev\/blog\/announcing-vite2.html<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>Bonus #1: Co deweloperzy my\u015bl\u0105 o Vue?<\/h2>\n","innerContent":["\n<h2>Bonus #1: Co deweloperzy my\u015bl\u0105 o Vue?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W Vived wr\u0119cz kochamy statystyki. Kiedy w Vue Report 2022 zobaczy\u0142em prawie o\u015bmiostronnicow\u0105 sekcj\u0119 wype\u0142nion\u0105 statystykami i wykresami by\u0142em w si\u00f3dmym niebie. Wi\u0119kszo\u015b\u0107 z nich to co prawda \u201cprzeklejki\u201d z r\u00f3\u017cnych raport\u00f3w na temat Vue, ale bardzo dobrze podsumowywuj\u0105 one stan ekosystemu. Poni\u017cej dziel\u0119 si\u0119 z Wami kilkoma najciekawszymi obserwacjami, ale je\u015bli r\u00f3wnie mocno co ja kochacie cyferki i wykresy, to polecam zajrze\u0107 do oryginalnego raportu.<\/p>\n","innerContent":["\n<p>W Vived wr\u0119cz kochamy statystyki. Kiedy w Vue Report 2022 zobaczy\u0142em prawie o\u015bmiostronnicow\u0105 sekcj\u0119 wype\u0142nion\u0105 statystykami i wykresami by\u0142em w si\u00f3dmym niebie. Wi\u0119kszo\u015b\u0107 z nich to co prawda \u201cprzeklejki\u201d z r\u00f3\u017cnych raport\u00f3w na temat Vue, ale bardzo dobrze podsumowywuj\u0105 one stan ekosystemu. Poni\u017cej dziel\u0119 si\u0119 z Wami kilkoma najciekawszymi obserwacjami, ale je\u015bli r\u00f3wnie mocno co ja kochacie cyferki i wykresy, to polecam zajrze\u0107 do oryginalnego raportu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>1. Vue jest wykorzystywane przez zdecydowanie wi\u0119cej aplikacji ni\u017c Angular<\/h3>\n","innerContent":["\n<h3>1. Vue jest wykorzystywane przez zdecydowanie wi\u0119cej aplikacji ni\u017c Angular<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nie wa\u017cne, czy patrzymy na wyniki og\u00f3lne czy te\u017c zaw\u0119\u017cone do najpopularniejszych stron internetowych, Vue jest zdecydowanie popularniejsze od Angulara. K\u0142\u00f3ci si\u0119 to z wynikami ankiet dotycz\u0105cych u\u017cywanych w ostatnim roku narz\u0119dzi w\u015br\u00f3d deweloper\u00f3w, gdzie Angular nadal nieznacznie wygrywa z Vue.<\/p>\n","innerContent":["\n<p>Nie wa\u017cne, czy patrzymy na wyniki og\u00f3lne czy te\u017c zaw\u0119\u017cone do najpopularniejszych stron internetowych, Vue jest zdecydowanie popularniejsze od Angulara. K\u0142\u00f3ci si\u0119 to z wynikami ankiet dotycz\u0105cych u\u017cywanych w ostatnim roku narz\u0119dzi w\u015br\u00f3d deweloper\u00f3w, gdzie Angular nadal nieznacznie wygrywa z Vue.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5670,"width":593,"height":650,"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\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-934x1024.png\" alt=\"\" class=\"wp-image-5670\" width=\"593\" height=\"650\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.50.19-1-934x1024.png\" alt=\"\" class=\"wp-image-5670\" width=\"593\" height=\"650\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>2. Vue zr\u00f3wnuje si\u0119 pod wzgl\u0119dem popularno\u015bci z Angularem<\/h3>\n","innerContent":["\n<h3>2. Vue zr\u00f3wnuje si\u0119 pod wzgl\u0119dem popularno\u015bci z Angularem<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Niezale\u017cnie od tego kt\u00f3r\u0105 ankiet\u0119 postanowi\u0142em przeanalizowa\u0107, popularno\u015b\u0107 Angulara sukcesywnie maleje, a Vue sukcesywnie ro\u015bnie. W tym roku popularno\u015b\u0107 obu tych framework\u00f3w wyr\u00f3wna\u0142a si\u0119, co oznacza, \u017ce za rok kolejno\u015b\u0107 na frontendowym podium mo\u017ce ulec zmianie.\u00a0<\/p>\n","innerContent":["\n<p>Niezale\u017cnie od tego kt\u00f3r\u0105 ankiet\u0119 postanowi\u0142em przeanalizowa\u0107, popularno\u015b\u0107 Angulara sukcesywnie maleje, a Vue sukcesywnie ro\u015bnie. W tym roku popularno\u015b\u0107 obu tych framework\u00f3w wyr\u00f3wna\u0142a si\u0119, co oznacza, \u017ce za rok kolejno\u015b\u0107 na frontendowym podium mo\u017ce ulec zmianie.\u00a0<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5672,"width":589,"height":421,"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\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1-1024x734.png\" alt=\"\" class=\"wp-image-5672\" width=\"589\" height=\"421\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.18-1-1024x734.png\" alt=\"\" class=\"wp-image-5672\" width=\"589\" height=\"421\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>3. Ro\u015bnie liczba os\u00f3b niezadowolonych z Vue<\/h3>\n","innerContent":["\n<h3>3. Ro\u015bnie liczba os\u00f3b niezadowolonych z Vue<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Popularno\u015b\u0107 Vue sukcesywnie ro\u015bnie. Niestety przez ostatnie 3 lata sukcesywnie ro\u015bnie r\u00f3wnie\u017c liczba os\u00f3b niezadowolonych z Vue. Wci\u0105\u017c nie s\u0105 to alarmuj\u0105ce liczby, ale ci\u0119\u017cko powiedzie\u0107, czy wynika to z dojrza\u0142o\u015bci frameworka czy te\u017c ze wspomnianych ju\u017c dzi\u015b problem\u00f3w z migracj\u0105 do Vue 3.<\/p>\n","innerContent":["\n<p>Popularno\u015b\u0107 Vue sukcesywnie ro\u015bnie. Niestety przez ostatnie 3 lata sukcesywnie ro\u015bnie r\u00f3wnie\u017c liczba os\u00f3b niezadowolonych z Vue. Wci\u0105\u017c nie s\u0105 to alarmuj\u0105ce liczby, ale ci\u0119\u017cko powiedzie\u0107, czy wynika to z dojrza\u0142o\u015bci frameworka czy te\u017c ze wspomnianych ju\u017c dzi\u015b problem\u00f3w z migracj\u0105 do Vue 3.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":5673,"width":647,"height":453,"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\/2022\/07\/Screenshot-2022-07-07-at-15.51.37.png\" alt=\"\" class=\"wp-image-5673\" width=\"647\" height=\"453\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/07\/Screenshot-2022-07-07-at-15.51.37.png\" alt=\"\" class=\"wp-image-5673\" width=\"647\" height=\"453\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/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:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/www.monterail.com\/vue-report-amsterdam-2022\">https:\/\/www.monterail.com\/vue-report-amsterdam-2022<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>Bonus #2: Historia Vue<\/h2>\n","innerContent":["\n<h2>Bonus #2: Historia Vue<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Za ka\u017cdym razem, kiedy w przegl\u0105dach wspominam o Vue polecam Wam dokument na temat historii tego frameworku od Honeypot. Nie inaczej b\u0119dzie i tym razem. Je\u015bli jeszcze go nie widzieli\u015bcie i szukacie czego\u015b ciekawego na weekendowe popo\u0142udnie, to naprawd\u0119 warto.<\/p>\n","innerContent":["\n<p>Za ka\u017cdym razem, kiedy w przegl\u0105dach wspominam o Vue polecam Wam dokument na temat historii tego frameworku od Honeypot. Nie inaczej b\u0119dzie i tym razem. Je\u015bli jeszcze go nie widzieli\u015bcie i szukacie czego\u015b ciekawego na weekendowe popo\u0142udnie, to naprawd\u0119 warto.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=OrxmtDw4pVI","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=OrxmtDw4pVI\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=OrxmtDw4pVI\n<\/div><\/figure>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9947","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=9947"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9947\/revisions"}],"predecessor-version":[{"id":10473,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/9947\/revisions\/10473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/8846"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=9947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=9947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=9947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}