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
Uzupełniłem w lekcji poprzedniej wszystkie walidatory, więc zobacz teraz musimy wpisać wszystkie żebyśmy
mogli w ogóle przejść dalej.
Jeżeli sobie tutaj wszystko zaznaczymy, jeszcze się przycisk nie odblokował musimy wybrać ostatni element
z walidacji z listy.
Dopiero wtedy się on odblokowuje, natomiast chciałbym jeszcze pokazać jeden fajny skrót którego nie pokazałem
w lekcji poprzedniej.
Jeżeli piszesz name np. dirty i required to lepiej się odwołać do error.
Jest tutaj coś takiego jak error.
I to ma wartość true
jeżeli i dirty i invalid ma wartość true więc tutaj możemy spokojnie napisać if name error.
I w każdej innej sytuacji gdzie tutaj to powtarzaliśmy powinno to działać tak samo czyli domyślnie nie
widać błędu ale jeżeli wyskoczymy z takiego pola to ten błąd się tutaj już pokaże.
Natomiast w tej lekcji chciałem ci pokazać jak możemy sprawdzić poprawność dwóch pól czy np. wpisaliśmy
takie samo hasło. Ja do tych pól przepisałem już v-model password oraz repeatPassport i na zdarzenie change je zmieniamy,
w zasadzie zmienimy to na input, czyli za każdym wpisanym znakiem będę chciał robić tutaj touch OK.
No i teraz musimy je dodać tutaj je dodałem do walidacji.
Po pierwsze będę chciał zrobić coś takiego że nasze password jest wymagane czyli jest wymagane i dodatkowo
zrobimy to samo z repeatPassword, required
czyli ono jest wymagane ale oprócz tego zaimportujemy sobie jeszcze coś takiego jak sameAs,
z tych walidatorów.
I teraz będę chciał tutaj zrobić sameAs,
możemy napisać password, możemy to nazwać jak chcemy i wywołuje tutaj funkcję sameAs podając jej
z czym ma być identyczna czyli tutaj password oznacza że tutaj to się nazywa password i te dwa pola
mają być takie same.
Okay spróbujmy teraz zobaczyć jak by to wyglądało.
Będziemy musieli sobie wyświetlić błędy więc najlepiej byłoby skopiować sobie to i tutaj gdzie mamy hasło wstawiam jeżeli
v password error, ten skrót sobie zastosujemy to wtedy chcemy tutaj coś wyświetlić
i jeżeli chodzi o repeatPassword zrobimy podobnie więc teraz będziemy mieli okazję sprawdzić czy rzeczywiście
ma to sens, jeżeli tutaj wejdę i wyskoczę, jest ok ale jeżeli nic nie wpisze to jest niepoprawne.
Wpiszmy jakieś 4 znaki i teraz tutaj jeżeli wpisze coś co jest niezgodne z tym tutaj wyżej to jak widzisz
będziemy mieli błąd.
I w ten sposób możemy sobie to walidować.
Natomiast tutaj warto byłoby jeszcze wyświetlić sobie np. taki element, w miejscu gdzie mamy repeatPassword.
Najlepiej byłoby zrobić coś takiego.
I tutaj odwołamy się do repeatPassword
error
OK.
No i tutaj napiszemy
hasła muszą być takie same.
Natomiast tutaj można było zrobić jeszcze inny error bo to zależy czy tutaj pytamy o required czy nie, tak jak
robiliśmy wyżej, w zasadzie,
jeżeli tutaj wyrzucimy sobie required.
Mimo wszystko powinno to działać tak samo no bo jeżeli tutaj coś piszę a tutaj nie to te hasła się nie
zgadzają i wystarczy że zostawimy coś takiego.
Ok dopiero jak wpiszemy to samo czyli tutaj asdf asdf OK.
Dopiero wtedy po wpisaniu pozostałych pól będziemy mogli wysłać taki formularz.
Jak zatem widzisz walidacja czy dwie jakieś rzeczy na naszym modelu są takie same,
jest bardzo prosta natomiast cały czas zachęcam Cię żebyś zerknął sobie jeszcze na pozostałe walidatory
na stronie Vuelidate.