Techniki Zaawansowane
5 godz. 11 min · Vue.js · Full-stack i Programowanie
Piotr PalarzWeb DeveloperKurs, który masz przed sobą, to kontynuacja wydanego wcześniej kursu Vue.js od Podstaw. W pierwszym kursie omówione zostały najważniejsze koncepcje pracy z Vue, a w tym materiale poruszamy już bardziej zaawansowane tematy. Przede wszystkim skupimy się na pracy z użyciem nowoczesnego workflow, co da nam niezwykłą swobodę tworzenia aplikacji internetowych. Jeśli zatem znasz już podstawy pracy z tym frameworkiem i chcesz wskoczyć na kolejny poziom wtajemniczenia, ten kurs jest zdecydowanie dla Ciebie. A co znajdziesz w materiale?
Na początku zobaczysz, jak szybko tworzyć pliki startowe do nowej aplikacji z użyciem narzędzia vue-cli. Omówimy możliwość dzielenia kodu na wiele plików, tworzenia szablonów, a także wykorzystywania bezpośrednio funkcji renderującej, do której zamieniane są na etapie builda wszystkie szablony.Zobaczysz również czym są i jak pracować z komponentami funkcyjnymi i tzw. mixinami, które pozwolą reużywać raz napisany fragment kodu.
Przepływ informacji to bardzo ważny temat w każdej aplikacji internetowej. Vue oferuje kilka sposobów na to, aby komponenty mogły się ze sobą komunikować. Ich omówienie zaczniemy od najprostszych technik, które świetnie sprawdzają się w wielu przypadkach. Następnie rozszerzymy możliwości instancji Vue w ten sposób, aby wszystkie komponenty miały dostęp do scentralizowanego miejsca, gdzie przechowywany będzie stan aplikacji.Tam jednak, gdzie aplikacja wymaga zarządzania większą ilością danych jednocześnie, powyższe techniki mogą być niewystarczające. Z tego powodu, podobnie jak w innych frameworkach, Vue posiada oficjalny wzorzec oraz bibliotekę do zarządzania stanem aplikacji. Rozwiązanie to nazywa się VueX i w kursie zostanie ono dokładnie omówione. Zobaczysz zatem jak skonfigurować tzw. store, jak przechowywać w nim dane, jak je wyświetlać w widokach, aktualizować za pomocą tzw. mutacji czy pracować z nimi wykorzystując akcje. Przekonasz się, że początkowa większa ilość pracy, aby wszystko skonfigurować, w pewnym momencie zaczyna się opłacać.
Tworzenie nowoczesnych aplikacji typu SPA (Single Page Application) nie może się obejść bez zmian widoków. Dobrą praktyką jest, aby wraz z takimi zmianami, aktualizowany był również pasek adresu. Wykonanie takiego zadania umożliwiają nam tzw. routery. Vue posiada oficjalny dodatek o nazwie vue-router, który w tym kursie dokładnie omówimy.Zobaczysz jak dołączyć router do swojego projektu, a także jak konfigurować ścieżki. Poruszymy tematy takie jak generowanie odnośników, dynamiczne parametry, tworzenie zagnieżdżonych ścieżek czy nawigacja z poziomu kodu JavaScript. Dowiesz się również, jak tworzyć tzw. guardy, które umożliwią lub zablokują możliwość wyświetlania wybranego widoku, np. w zależności od tego czy użytkownik jest aktualnie zalogowany.
Trzecim, po zarządzaniu stanem aplikacji i wykorzystaniu routingu, komponentem, który niezbędny jest do tworzenia aplikacji napędzanych danymi, jest możliwość wysyłania zapytań HTTP.Tę czynność umożliwi nam bardzo popularna, acz niezależna od Vue biblioteka axios. Zobaczysz jak za jej pomocą pobierać i wysyłać dane. Aby jednak jak najwygodniej pracować z tym rozwiązaniem, połączymy axios z Vue, udostępniając tak naprawdę jej metody wewnątrz każdego komponentu.
W jednym z rozdziałów kursu podejmiemy temat walidacji formularzy. Zobaczysz jak z pomocą popularnego pluginu dla Vue, robić to w bardzo prosty sposób.Omówimy różne funkcje walidujące, które umożliwią sprawdzenie poprawności pól tekstowych, radio czy checkboxów. Zobaczysz jak w łatwy sposób wyświetlać komunikaty o błędach i warunkowo zmieniać wygląd pól. Nie zabraknie również informacji o asynchronicznej walidacji, która pozwoli nam na żywo sprawdzać czy wpisany adres email jest dostępny czy też nie.
Kurs ten oczywiście to nie tylko niezbędna teoria, ale także praktyczne przykłady. Aby jak najlepiej poznać omawiane techniki, wykorzystamy je do stworzenia ciekawych aplikacji.Pierwszą z nich będzie konfigurator produktu, który umożliwi użytkownikowi wybór podzespołów zamawianego komputera. Każdy taki wybór będzie wpływał na końcową cenę, która będzie na bieżąco aktualizowana. Po wybraniu wszystkich opcji, dane prześlemy na serwer. To projekt który pokaże Ci jak przechowywać dane z użyciem VueX, a także jak na ich podstawie wyświetlić widok i napisać logikę.Innym projektem, który wykonamy, będzie Quiz. To aplikacja, gdzie użytkownik odpowiadał będzie na serię pytań pobranych z serwera, a do wyboru będą 3 odpowiedzi. Po przejściu przez wszystkie pytania, wyślemy do serwera zapytanie, a ten w zamian zwróci nam listę poprawnych odpowiedzi. Dzięki temu pokażemy użytkownikowi, gdzie miał rację, a gdzie popełnił błąd. Aplikacja ta wykorzystywać będzie wszystkie najważniejsze techniki, tj. VueX, routing, a także Ajax.
Kurs ten jest dla wszystkich osób, które czują się już swobodnie w pracy z frameworkiem Vue. Jeśli zatem masz już solidną wiedzę podstawową lub przerobiłeś kurs Vue.js od Podstaw, to zdecydowanie jesteś gotów na poszerzenie swoich umiejętnośći w pracy z tym frameworkiem. Co ważne, doświadczenie w pracy z innymi frameworkami JavaScript nie jest tutaj wymagane, a jedyne co będzie bardzo pomocne, to znajomość nowej składni EcmaScript 6.
Vue.js 2.x.x
W tej ostatniej już lekcji jeżeli chodzi o Vuelidate pokażę ci w jaki sposób możesz asynchronicznie również
walidować pola.
Będę chciał zrobić tak żebyśmy wysłali zapytanie do serwera i dowiemy się wtedy czy dane, dany adres
e-mail jest dostępny czy też nie.
Więc przejdź sobie koniecznie do katalogu servers 04 i uruchom za pomocą node index
właśnie ten serwer node index.js wpiszesz tak jak wcześniej to serwer się uruchomi i spróbujemy
wysłać takie zapytanie więc przychodząc tutaj tutaj gdzie mamy e-mail to ja mówię że on ma być wymagany
i ma być adresem e-mail ale dodatkowo chciałbym jeszcze nazwać swoje pole unique bo tutaj te nazwy są dowolne.
Natomiast jeżeli wpiszemy samo required to jest tak jakbyśmy wpisali required dwukropek required, więc ważne jest
to co jest po prawej stronie przypisania wtedy.
Ale jeżeli nazwiemy sobie to unique to już później w błędach u góry będzie się do tego można w ten sposób
odwoływać.
I jeżeli z tego zrobisz funkcję to on otrzyma value tego pola kiedy ktoś ją wpisze i możesz z tej funkcji
zwrócić promise jeżeli to promise zrobi resolve true to to pole jest poprawne.
Jeżeli resolve false to jest niepoprawne.
Ja tutaj sobie za zaimportowałem axios i co ważne axios zwraca promise'y więc nie musimy tutaj robić
niczego takiego jak new Promise tylko możemy od razu zrobić return axios.get i wysłać zapytanie w zasadzie
będzie to post i będziemy chcieli wysłać takie zapytanie pod adres http://localhost:3000 na tym
uruchomionym serwerze i tutaj będziemy mieli e-mail ok i dane które chcemy przesłać to będzie e-mail
i właśnie to będzie ta value tutaj wpisana.
I kiedy otrzymamy z powrotem dane będzie to w response kropka data więc data wyciągam za pomocą destructuring'u
to będziemy mogli te dane po prostu zwrócić.
I to będzie tak jakbyśmy zrobili promise resolve to by nam wystarczyło chociaż w zasadzie w tych danych, ja
serwera odsyłam coś takiego jak unique true.
Czyli musimy stąd zwrócić
data.unique i to nam zwróci true lub false.
Oczywiście axios zadba o to żeby to wszystko sparsować odpowiednio na tak naprawdę json czy jakby z json'a
na obiekt javascript'owy i dlatego prawdziwy true zostanie tutaj zwrócony.
Ok.
Teraz jeszcze żeby sprawdzić czy to działa to będziemy sobie musieli do naszego maila przypisać jakieś
błędy żeby je tutaj wyświetlało.
I może to zrobimy po prostu w ten sposób, że jeżeli jest dirty oraz not unique, bo tak sobie to nazwaliśmy
to piszemy adres e-mail jest zajęty.
OK teraz jeżeli tutaj odświeżę i zaczniemy coś wpisywać, Piotr, zauważ że mnóstwo zapytań wysyłamy i być może
nie do końca jest to dobre rozwiązanie ale wpiszmy najpierw adres taki który wiem że jest wolny i widzimy
że wszystko jest w porządku.
Natomiast żeby nie wysyłać tylu zapytań to można zrobić jedną rzecz mianowicie tutaj będziemy chcieli
zrobić taki v-model.lazy i wtedy dopiero jak wyskoczymy z pola to będzie ono walidowane bo dopiero wtedy
ta wartość która jest wpisana zostanie przypisana tutaj do naszego data.
Więc teraz powinno tych zapytań być mniej.
Wpiszmy piotr nowak com, wyskakuje z tego pola i okazuje się że taki adres e-mail jest zajęty bo serwer odesłał
mi zobacz unique false.
Natomiast jeżeli wpisałbym sobie nowak pl to okaże się że tym razem będziemy mieli odesłane unique true i dzięki
temu mogliśmy takiej walidacji dokonać.
Jak zatem widzisz taka walidacja również jest bardzo prosta.
No i nie pokazałem ci co prawda wszystkiego co wiąże się z Vuelidate ale wierzę że jeżeli będziesz potrzebował
walidacji to czytasz to na stronie dokumentacji, możesz jeszcze m.in. tworzyć sobie np. własne walidatory gdzie
to ty będziesz zwracał true lub false, od ciebie będzie zależeć czy jakieś pole jest poprawne czy nie.
Koniecznie zajrzyj na tą stronę naprawdę jest tam wszystko fajnie opisane a solidne podstawy mam nadzieję
że przekazałem ci właśnie w tej lekcji i w kilku poprzednich.