Prosty i Nowoczesny Framework dla Vue.js
7 godz. 2 min · Vue.js · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerW tym projekcie tworzyć będziemy praktyczny projekt - klona Wikipedii! Minipedia pobierze dane z prawdziwego źrodła danych, zewnętrznego API WikiMedia - będzie łudząco podobna do oryginału oraz współdzieliła najważniejsze funkcjonalności, takie jak dostarczanie treści w różnych wersjach językowych, możliwość wyszukiwania artykułów, czy pobieranie najpopularniejszych wpisów dla danego języka. Stworzymy także podstronę wyświetlającą za każdym razem losowy artykuł w danej wersji językowej.Zobaczysz też, jak dokonać migracji ze statycznej strony HTML na Nuxt - oraz jak tworzyć przykładowe komponenty podczas tego procesu.Dzięki temu wszystkiemu, dowiesz się jak wykorzystać nabytą wiedzę w praktyce.
Dzięki Nuxtowi dowiesz się jak optymalizować Twoje strony www z duchem idei progressive enhancement, dostarczając coraz to lepsze doświadczenia dla swoich użytkowników oraz tworząc aplikację napisaną w 100% w JavaScript, która będzie działała nawet wtedy, gdy użytkownik jawnie wyłączy go w przeglądarce! To wszystko za SSR (Server Side Rendering), dzięki któremu treści będą gotowe do konsumpcji już przy wstępnej, pierwszej odpowiedzi z serwera WWW.Oczywiście, ma to swoje implikacje na wydajność naszej aplikacji - sprawiając że Lighthouse czy optymalizacja pod SEO staje się coraz prostsza!
Czymże jest ekosystem danego frameworka bez wsparcia społeczności! Dlatego podczas tego kursu nauczysz się instalować i wykorzystywać różne pluginy i moduły, które zaoszczędzą Ci dużo czasu. Dowiesz się też, jak tworzyć własne moduły - które rozszerzą działanie Twojej aplikacji Nuxt w sposób czysty i zarządzalny.
Nuxt jest frameworkiem w którym pracujemy zarówno po stronie front-endu, jak i back-endu. W związku z czym, stworzymy swoje własne API (bazujące na express.js) które będzie pewnego rodzaju pośrednikiem pomiędzy API WikiMedia oraz Twoją aplikacją internetową.
W tym kursie, dowiesz się także jak tworzyć swoje własne Middleware'y - czyli fragmenty kodu wywoływane pomiędzy przechodzeniem między stronami, czy podczas innych zapytań HTTP.Dodatkowo, zobaczysz jakie narzędzia daje nam Nuxt aby tworzyć progresywne aplikacje internetowe, oferując wsparcie dla takich funkcjonalności jak np. animacje między przejściami pojedynczymi podstronami naszego serwisu.
Tajemnicze i18n - czyli numeronim odpowiadający angielskiemu słowu "internalisation" - odnosi się w kontekście web developmentu do tłumaczenia danych na różne języki. Podczas realizacji projektu Minipedii, nie tylko wykorzystamy standardowe podejście do tłumaczeń stałych elementów naszego interfejsu użytkownika, ale także przetłumaczymy same dane zwracane z API, wykorzystując inną wersję językową w zależności od preferencji użytkownika!
Poznasz też kilka ciekawych pluginów i rozwiązań dotyczących optymalizacji pod SEO - poza faktem, że podejście spełniające intencje użytkownika jest najlepszym, co możemy zrobić - pluginy generujące nam mapę stron automatycznie na podstawie zadeklarowanych przez nas podstron, czy generatory danych jsonld pomogą w pozycjonowaniu Twojej wydajnej aplikacji jeszcze wyżej w hierarchii wyszukiwarek.
Aby móc efektywnie korzystać z tego kursu, powinieneś posiadać średnio zaawansowaną wiedzę z kategorii Front End, z naciskiem na umiejętność posługiwania się JavaScriptem oraz solidne podstawy NodeJS. Konieczna jest znajomość Vue, jako że Nuxt jest frameworkiem korzystającym z niego u swoich podstaw. Jeśli czujesz się dość swobodnie w wyżej wymienionych aspektach web developmentu, ten kurs będzie idealny dla Ciebie.
W tej lekcji postaram się podsumować kilka.
Dobrych praktyk i moich przemyśleń dotyczących Nexta.
Nie będziemy więcej.
Już faktycznie zmieniać kodu źródłowego w tych przykładach, w związku z czym
jeżeli chciałbyś zobaczyć najbardziej aktualną wersję tego kodu źródłowego,
to ostatnia lekcja jest lekcją, w której dzieje się ostatnio zmiana.
I teraz opowiem troszkę o.
Tym, w czym Next.
Jest dobry, w czym ma. Jakieś luki.
I jak. Generalnie do niego podchodzić.
Jak widzimy jesteśmy w stanie przy pomocy
Nexta stworzyć naprawdę szybko działającą aplikację internetową zgodną z.
Duchem Progressive Enhancement. Ponieważ przypomnę.
Tylko. Jeśli wyłączymy.
JavaScript całkowicie, to dalej nasza
aplikacja będzie funkcjonowała, w przeciwieństwie do tego, gdybyśmy.
Napisali ją w czystym View bez żadnego rozwiązania sekundowego.
Czyli jeśli przejdziemy na stronę główną, to wszystko nam dalej działa.
Pomimo tego.
Że JavaScript po stronie klienta jest wyłączony.
To czego nie warto. Robić.
W pakiecie to np. rzeczy jak.
Kieszeń, który
może mieć jakieś swoje moduły do kasowania, czyli zapisywania w pamięci czy
na dysku gotowych wyników danych operacji, aby po prostu request szybciej.
Bo są do tego dedykowane rozwiązania jak np.
Relic. Variant czy inne tego typu podejścia.
W związku z czym należy pamiętać, że Next jest to narzędzie.
Do generowania kodu na podstawie komponentów View.
I jeśli jesteśmy w stanie.
Zrobić szybko. To super.
Ale jeśli chcemy zrobić własny catering,
być może zainstalować certyfikaty SSL, to oczywiście możemy to zrobić.
Ale być może. Lepiej jest wystawić engine CSSa przed
samym faktem i po prostu przekierować cały ruch HTTP na https.
Na tamtym poziomie.
Możemy również.
Włączyć wsparcie dla HTTP 2, jednak bez
engineers jest to dosyć ograniczone rozwiązanie, ponieważ serwer i tak musi
zwrócić pierwsze bajty, które będą wskazywały, które assets.
Możemy pobrać gdzieś w.
Przypadku Engines.
A już zanim jeszcze nasz zapytanie dojdzie
do noda możemy dać wskazówkę do tego, które resource mogą się przydać.
Kolejną rzeczą jeśli chodzi o.
Nexta w kontekście dobrych.
Praktyk jest optymalizacja.
Czyli jeśli zerkniemy sobie.
Na View Lazy Hydra 1 jest to. Taki moduł.
Który pozwala nam na.
Ograniczenie pracy, którą przeglądarka i view muszą.
Zrobić. Po stronie klienta.
Ponieważ jeśli my wchodzimy na stronę z
włączonym Java skryptem i odświeżamy ją, to pierwszy render faktycznie dzieje się
po stronie serwera, ale View tak czy siak przebudowuje całą naszą.
Treść strony
na moduły frontend owe tak aby jakaś reaktywność w momencie gdy użytkownik
dokonuje interakcji z naszą aplikacją działała.
W związku z czym tutaj mieliśmy taki.
Błąd w konsoli.
Być może już go nie ma, chyba już go nie
ma, że jeżeli jest miszmasz między tym, co wygenerował nam serwer, a tym co
View na froncie nam wygenerowała, to wtedy dzieje się tzw.
full.
Render, czyli tak naprawdę wszystko co serwer nam przygotował idzie do kosza.
I my tworzymy aplikację od zera na
froncie, co jest bardzo kosztowne w kontekście wydajności i wyszukiwarki też
zwracają na to uwagę jak szybko nasza strona się ładuje.
A to wydłuża. Czas jej ładowania, w związku.
Z czym wolej z ich edition robi tyle, że jesteśmy w stanie
powiedzieć, które komponenty w ogóle nie będą miały żadnego
rodzaju reaktywności na froncie, w związku z czym możemy je kompletnie wyłączyć np.
. Tutaj.
Lazy Hybrid Never sprawi, że ten konkretny
komponent nigdy nie zostanie prze renderowane na froncie.
Ponieważ tak czy siak.
Jego kontent będzie taki sam.
Jak został wygenerowany przez serwer.
Bądź wskazać sytuacje.
Kiedy to się powinno wydarzyć, czyli. Np.
kiedy mamy stan idealny, czyli np. nic.
Nie dzieje się. Ani w.
Worku, ani w CP.
W kontekście ładowania tej jednej strony.
Tak samo możemy wskazać inne opcje, takie
jak on interaction, czyli w momencie kiedy użytkownik na.
Przykład wjedzie na dany komponent myszką, wtedy on się może przeredagować.
I daje nam to naprawdę duży zysk czasu ładowania strony.
Który w połączeniu z server side.
Rendering Nexta potrafi dać naprawdę nieziemskie efekty wydajności.
I jeżeli mówimy o wydajności, to kolejnym
bardzo dobrym rozwiązaniem jest zmniejszanie rozmiarów klas CSS owych.
I tutaj chciałem tylko zarzucić taki artykuł.
Który mówi. Jak rozwiązania tego typu, które.
Np. robi też Google.
Jeżeli wejdziemy na komórkę i wpiszemy new.
To podglądając tutaj klasy.
Na tych elementach.
Zobaczymy, że te klasy są naprawdę krótkie.
To nie są klasy wymowne.
One są.
Uproszczony do losowych ciągów znaków tak
aby były jak najkrótsze, bo faktycznie każdy.
Bajt wysłane przez przeglądarkę się liczy.
I to co możemy zrobić również w.
Tekście jest opisane w tym artykule.
Gdzie rozszerzając konfiguracją.
FPGA jesteśmy w stanie zaimplementować tak zwane CSS modules.
I dynamicznie zmieniać nazwy.
Klasy na etapie budowania projektu.
Czyli w naszym przypadku moglibyśmy dalej
korzystać z naszych klas zadeklarowanych np.
w tym pliku czyli side navigation. Dalej w naszym.
Kodzie źródłowym by się znajdowało.
Ale na etapie budowania projektu ona by się zmieniła.
Np. na jakiś taki ciąg znaków bardzo krótki.
I według tego artykułu ten developer uzyskał 70 procentową.
Wydajność względem poprzedniego stanu aplikacji, czyli.
Jest o 70% lżejsza.
Jego bardzo success.
A względem tego gdy.
Miał zwykłe niezidentyfikowane nazwy klas.
Jest to robione w tekście. Ja to.
Zrobiłem w jednym z moich projektów, Jednak jest to bardzo skomplikowane proces
i wymaga dużej znajomości Web packa oraz innych technologii, w związku z czym.
Nie.
Znalazło się tutaj miejsce na tego typu rozwiązania.
Ale jeśli faktycznie szukasz.
Wyzwania w kontekście tego, co jeszcze możesz zrobić, aby sprawić, żeby były one
jeszcze szybsze, no to jest to na pewno dobre wyzwanie.
Temat optymalizacji pod wyszukiwarki
internetowe jest też bardzo szerokim tematem.
Na temat którego można byłoby stworzyć osobny kurs.
W związku z czym chciałbym Cię.
Serdecznie zaprosić do ostatniej sekcji tego kursu, gdzie.
Podsumuję co dalej.
Będzie się działo z Maksem.
Jako, że tutaj pracowaliśmy na naście wersji 2 14, a zarówno Next 3
jak i VU 3 są już na horyzoncie i opowiem troszkę o tym, co czeka nas w przyszłości.