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 lekcji króciutko o tym, w jaki sposób korzystać z plików źródłowych do tego kursu.
Będziesz mógł je pobrać ze strony eduweb.pl i po rozpakowaniu pliku ZIP,
będziesz miał takie oto katalogi.
Po pierwsze katalog Finish, w którym znajdziesz gotowe przykłady do każdej lekcji, czyli taki kod jaki
znajduje się w momencie, gdy lekcja się kończy oraz co ważne katalog start, a więc taki kod na jakim rozpoczynamy
daną lekcję.
Ja zachęcam Cię do tego, żebyś rozpoczynał każdą lekcję z katalogiem Start i dzięki temu będziesz miał
u siebie we edytorze taki sam kod jak ja,
kiedy rozpoczynamy lekcję, będziesz mógł zatem pisać razem ze mną i pod koniec lekcji,
jeżeli przepiszesz wszystko tak jak ja, będzie się zgadzać z katalogiem Finish, tutaj w razie czego, możesz
sobie podejrzeć, konkretne rozwiązanie do konkretnej lekcji.
Tutaj jeszcze jest plik PRZECZYTAJ TO, zachęcam Cię żebyś poświęcił jedną minutę i ten plik również sobie
przeczytał.
To co jest jednak ważne, to pliki nie korespondują bezpośrednio z lekcjami czyli 01,
nie oznacza, że są to pliki źródłowe do lekcji pierwszej, dlatego że lekcją
pierwszą jest wprowadzenie, lekcją drugą np. omówienie, jak korzystać z plików źródłowych, tak więc są lekcje,
w których nie korzystamy z plików źródłowych.
Ale teraz skąd będziesz wiedział, z którego pliku, z katalogu powinieneś korzystać.
Otóż tutaj mam lekcje z kursu, jedną z lekcji jest ta lekcja 36 i jak możesz zobaczyć tutaj u
góry na pasku przeglądarki, widać przykład 34.
To oznacza, że właśnie katalog 34 powinieneś sobie otworzyć swoim edytorze.
Czyli zawsze na początku danej lekcji będziesz to widział.
Albo tutaj na pasku, albo zobaczmy, jeśli bym przewinął dalej taką lekcję.
W momencie, kiedy będzie mój edytor widoczny, to może również w tym miejscu, zobaczysz numer otwartego
katalogu.
Więc w ten sposób będziesz wiedział, na których plikach w danej lekcji pracujemy. I teraz jeszcze jedna
bardzo ważna uwaga. W tym kursie wykorzystujemy zaawansowane techniki, więc będziemy pracować z terminalem.
I mam nadzieję, że z takim okienkiem jesteś już zaznajomiony.
W moim przypadku jest to program iTerm2, na Windowsie może to być np. wiersz poleceń.
Natomiast ważne jest, żeby umieć się tutaj poruszać i jeżeli jeszcze nie wiesz jak to robić, to koniecznie
zajrzyj pod adres, który widzisz teraz na ekranie.
Tam znajdziesz dwa darmowe tutoriale mojego autorstwa, gdzie pokazuje jak korzystać z wiersza poleceń w
systemie Windows oraz z terminala w systemie Mac OS i również Linux, bo one akurat są w większości ze
sobą zbieżne. Dodatkowo będziesz musiał zainstalować w swoim systemie środowisko Node.js, które znajdziesz pod
takim adresem. Zainstaluj sobie najnowszą wersję i wtedy, po wpisaniu w terminalu node --version, powinna
Ci zostać zwrócona jakaś wersja i również npm powinno zostać zainstalowane.
Kiedy piszesz npm --version, też jakaś wersja powinna zostać zwrócona.
Następnie, przed każdą lekcją będziemy musieli przejść do wybranego katalogu. Można wpisać CD, postawić
spację i po prostu przeciągnąć wybrany katalog.
Powiedzmy, że z katalogu Start, tutaj 23 do niego będziemy chcieli przejść.
Wystarczy, że taki katalog sobie przyciągnę.
Ścieżka się uruchomi,
czy w zasadzie uzupełni, jeżeli wcisnę Enter, to jesteśmy w tym katalogu,
co widać tutaj również, w zależności od terminala,
różnie to wygląda i teraz gdybym wylosował pliki, które tutaj są jest tutaj plik package-lock i
package.json
I w tych plikach są wylistowane wszystkie zależności które są tutaj potrzebne.
Natomiast, nie ma tutaj katalogu node_modules,
czyli przed każdą lekcją, będziesz musiał wpisać
npm install, jednorazowo, i to tutaj stworzy katalog node_modules
i z pliku package.json, wszystko zainstaluje.
Ta operacja może oczywiście chwilkę potrwać.
Natomiast, nie będzie to jakaś bardzo długa chwila. Ok, no i wszystko się zainstalowano, teraz tutaj pojawił się
katalog node_modules i dzięki temu również będziemy mogli wpisać npm start i nasz przykład się uruchomi.
Tutaj zobaczymy za moment adres, pod jaki możemy przejść w przeglądarce, wystarczy go skopiować i oczywiście
uruchomić w przeglądarce.
No i jak widzisz przykład się wczytał, natomiast te konkretne polecenia typu Enter, start to jeszcze będę w kursie tłumaczył.
Ale przed większością lekcji, trzeba to będzie zrobić w następujący sposób.
Teraz, żeby taki serwer lokalny zatrzymać, wzyskamy Ctrl + C.
Natomiast, ważne jest to, że to wiąże się z pewną dolegliwością, bo jeżeli lekcje są stosunkowo krótkie,
to jeżeli skończysz jedną lekcję, przejdziesz do katalogu kolejnego np. 24. Znowu musisz instalować zależności
właśnie w taki sposób.
Więc, jeżeli chciałbyś to zrobić jednorazowo, to jest na to lepsze rozwiązanie.
Przejdziemy do głównego katalogu, czyli tutaj do źródła, OK.
Jeśli wylistuje pliki, zobaczy że jest tutaj plik install.js, który przygotowałem i jeżeli go sobie wykonamy,
czyli wpiszemy tutaj będąc w tym katalogu node install.js, to to nam zainstaluje, tak jak tutaj jest napisane, w zależności
w pięciu kolejnych folderach, czyli w lekcjach powiedzmy, od 1 do 5, będziesz miał już te zależności i wystarczy
później, po przejściu do takiego katalogu, wpisać npm start, żeby wszystko uruchomić.
Czyli nie musisz już wpisywać npm
install. Natomiast, dlaczego w pięciu kolejnych, a nie we wszystkich.
Bo, jak widzisz to chwilkę trwa i
gdybyśmy w kilkudziesięciu lekcjach chcieli to instalować w ten sposób, to trwałoby to po prostu długo.
Zatem kiedy przerobisz sobie pięć przykładów, przejdziesz do kolejnego.
Znów tutaj wpisz, ale będąc w głównym katalogu, właśnie tutaj źródła, w tym przypadku, będąc w katalogu
wpisz npm, czy node install w zasadzie. To zainstaluje zależności do kolejnych pięciu.
Ja teraz sobie to anuluję, wciskając Ctrl + C. Nie będziemy na to wszystko czekać. Natomiast zobaczył
byś komunikat, że wszystko udało się zainstalować. OK i mam zatem nadzieję, że to jest dla Ciebie jasne.
Albo przed każdą lekcją npm install w wybranym katalogu albo wcześniej
node install.js.
W tym głównym katalogu, gdzie się znajduje, to instaluje zależności, w pięciu kolejnych folderach.
Po wpisaniu kolejny raz, w kolejnych pięciu itd.
Natomiast, gdybyś samą tą liczbę 5, chciał zmienić, żeby zainstalować np. w dziesięciu.
To możesz ten plik install.js otworzyć swoim edytorze i zmienić tutaj MAX_AT_ONCE.
Ja ustawiłem to na 5, możesz to zmienić np. na 10.
Wtedy jednorazowo zainstalujesz sobie to w dziesięciu katalogach, a w tym czasie przygotujesz dla siebie
np. kawę.
Ok, to zatem wszystko w tej lekcji wprowadzającej.
Mam nadzieję, że to wszystko jest dla Ciebie jasne.
Zerknij również do pliku PRZECZYTAJ TO, tam znajdują się dokładnie te same informacje.
No i myślę, że możemy już rozpocząć prace z konkretnymi przykładami właśnie z Vue.js.
Do usłyszenia zatem, w kolejnej lekcji.