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
Od tej lekcji będziemy pracować już w nowoczesny sposób.
Do końca tego kursu z użyciem narzędzia Vue CLI i być może już jest tym narzędziem spotkałeś.
Natomiast ja będę chciał ci od podstaw pokazać, jak możemy je zainstalować i jak z niego korzystać.
Natomiast jedna bardzo ważna uwaga, mamy nowe narzędzie, w chwili kiedy ja te słowa wypowiadam, które jest
dostępne pod @Vue/cli.
Natomiast ja nie będę go instalował, dlatego że ono zawiera jeszcze sporo bug'ów i nawet tutaj, twórca
tego narzędzia, jak widzisz pisze, że ono może zawierać jeszcze bug'i.
I tutaj mam napisane, nie używać w produkcji, no chyba, że szukamy przygód.
Tak, więc nie będziemy korzystać z tego najnowszego narzędzia, aczkolwiek w momencie kiedy to narzędzie
osiągnie pełną dojrzałość i będzie działać to ja przetestuje to narzędzie.
Na naszym kursie i będę chciał również zaktualizować ten kurs, tak więc nie martw się, na pewno otrzymasz
lekcję z aktualizacją,
w tym kursie, kiedy to narzędzie będzie już gotowe do użycia, natomiast my sobie zainstalujemy narzędzie Vue CLI,
które jest stabilne, ale jest to troszkę starsza od tej wersja.
Nie jest to wersja beta, więc wszystko działa w porządku i ono jest dostępne do zainstalowania z npm,
na stronie dokumentacji Vue,
tak naprawdę możemy znaleźć, jak to zrobić, ale jest to proste, więc ja będę chciał to pokazać.
Oczywiście musimy przejść do terminala, więc ja mam tutaj to okno otwarte, przeszedłem do folderu 02 i
będę chciał zainstalować to narzędzie.
Natomiast sama instalacja tego narzędzia, jest w dowolnym miejscu, nie musi przechodzić do konkretnego
folderu.
Wystarczy, że otworzysz terminal i wpiszemy sobie coś takiego
npm install -g, czyli globalnie, vue-cli.
W ten sposób je zainstalujemy. Zauważ, że to, które przed momentem pokazałem, byłoby dostępne pod vue z małpką,
czyli w ten sposób, @vue cli.
Natomiast to nazywa się po prostu vue-cli.
Będę chciał je zainstalować, kiedy ono się zainstaluje, to będzie już istotne, żeby przejść do ważnego
katalogu dla nas, czyli do tego, w którym chcemy pracować.
Więc ja jestem w tym katalogu 02 i będziemy mogli tutaj zacząć pracę.
Jeżeli piszemy vue-cli, w zasadzie samo vue i cokolwiek nam wyskoczy, to znaczy, że to narzędzie zostało zainstalowane
poprawnie.
Jeżeli nic ci nie wyskoczy, to może jeszcze zamknij terminal i uruchom go ponownie.
Tak, więc od tej pory mamy dostęp do polecenia vue.
W ten sposób będziemy mogli pracować właśnie z tym narzędziem i ja będę chciał, żeby Vue CLI pomogło nam otworzyć,
taki startowy projekt, który pokaże ci w jaki sposób może wyglądać struktura plików i katalogów, żebyśmy
mogli wygodnie pracować z Vue. Wpiszmy zatem vue list.
I to nam pokaże wszystkie możliwe templatki i ja będę chciał, żebyśmy skorzystali z templatki webpack.
Jest to najbardziej zaawansowana templatka i na niej będziemy pracować w tym kursie.
Czyli nie musisz znać webpack'a, chociaż mam nadzieję, że o tym narzędziu słyszałeś.
Ale jeżeli znasz webpack'a i im lepiej go znasz, tym bardziej będziesz mógł później dostosować sobie ten
workflow do swoich potrzeb.
W razie czego na eduweb.pl znajdziesz mój 3 godzinny kurs na temat webpack'a. Aby teraz skorzystać z którejś z tych
templatek,
wystarczy, że piszemy vue init i nazwa tej templatki, czyli webpack.
Ważne, żeby być w tym katalogu w którym chcemy utworzyć ten projekt, jak widzisz. Ja może jeszcze wyczyszcze sobie ekran
i dopiero teraz wcisnę Enter i będziemy tutaj mieli serię pytań, więc pierwsze pytanie, czy chcemy wygenerować
projekt w aktualnym katalogu, w którym jesteśmy.
Tak, i pobierana jest templatka, a teraz będziemy mieli kolejne pytanie.
Nazwa projektu, zostawmy to w ten sposób.
Opis też nie jest istotny.
Autor, zostawimy to również w ten sposób i teraz bardzo ważne pytanie, czy chcemy wybrać sobie Runtime
i kompiler templatek czy tylko Runtime.
W lekcji poprzedniej pokazałem ci że, możemy korzystać z templatek, jeżeli tworzymy aplikację prosto w drzewie
DOM.
Czyli jeżeli wstawiamy sobie ten kod HTML, tak jak mieliśmy w tym div'ie z identyfikatorem app lub mogliśmy
również pod kluczem template, podać cały string, ale żeby Vue mogło to skomplikować, to potrzebuje nie tylko
Runtime, czyli samego framework'a Vue, ale również kompilatora.
Natomiast tutaj, będziemy mogli rekompilować te templatki na etapie Bilda, no i one jak ci wspominałem, one będą
zamieniane na funkcje renderujące.
Czyli tak naprawdę my nie potrzebujemy już dla użytkownika końcowego serwować framework'a,
razem z kompilatorem, bo nie będziemy nigdzie korzystać z templatek, jakby nie skomplikowanych wcześniej.
Stąd ja zawsze wybieram tutaj opcję Runtime Only,
dzięki temu 6 kilobajtów około zaoszczędzimy jeszcze na całym bindzie. Wybierzmy tę opcję.
Teraz pytanie, czy chcemy zainstalować Vue Router.
Wybierzemy nie.
Chociaż do tego tematu jeszcze w tym kursie wrócimy. Na pozostałe pytania również możemy odpowiedzieć
nie, żeby sobie na razie nie zaprzątać niepotrzebnie głowy, tym co się nam nie przyda w tym momencie.
Ok.
I teraz pytanie, czy na końcu ma zostać wykonane
npm install.
Wybierzmy Yes i to wszystko powinno zostać, bez problemu, zainstalowane.
Może to chwilę potrwać, ale zaraz powinno już być dla nas dostępne.
Jak widzisz, udało się i teraz mamy tutaj taką podpowiedź, żeby wpisać
npm run
dev
i dzięki temu zostanie uruchomiona nasza aplikacja,
więc wpiszemy to. Tutaj zobaczymy pod jakim adresem nasza aplikacja jest uruchomiona.
Natomiast zaraz zerkniemy, jak ta aplikacja wygląda.
Ten adres mogę sobie teraz skopiować, przejdziemy do przeglądarki w ten adres i jak widzisz nasza aplikacja
już działa i możemy na niej pracować.
Więc teraz gdybyśmy przeszli do kodu, 02. Tak wygląda to wszystko co w Vue CLI dla nas wygenerowało
i na początku może wyglądać odstraszająco.
Natomiast ważne jest żeby zapamiętał, że interesuje Cię tak naprawdę tylko ten plik index.html, w którym
możesz sobie coś pozmieniać. Możesz tutaj dodać na przykład jakieś style i interesuje Cię również katalog
src, w którym będziemy tworzyć tą aplikacje.
A co tutaj się znajduje,
powiemy sobie o tym w lekcji kolejnej.
Natomiast pozostałe katalogi, tak naprawdę jest to przygotowany workflow z użyciem webpack'a.
Więc, jeżeli znasz webpack'a, to tutaj znajdziesz tak naprawdę jego konfigurację.
Jak widzisz, są tutaj różne pliki i tak naprawdę na razie nie jest dla nas istotne co tam się znajduje.
Katalog src będzie dla nas ważny oraz ten plik Index.HTML.
Jeżeli byśmy tutaj przeszli i mamy komponenty np. Hello World.
Ważne jest to, że tutaj możemy coś zmieniać i będzie to automatycznie odświeżane. Zobaczmy na naszej
stronie mamy na przykład coś takiego jak ekosystem i jeżeli byśmy sobie tutaj dodali wykrzyknik, zapisze to
wszystko i przejdę na stronę,
to powinno to zostać, jak widzisz, odświeżone, więc mamy bardzo wygodny workflow, ale przede wszystkim nasza
aplikacja jest podzielona na wiele plików i dokładniej przyjrzymy się temu w lekcji kolejnej.