od Podstaw
6 godz. 45 min · Angular · Full-stack i Programowanie
Mateusz KuleszaSenior Software Developer, Konsultant, TrenerPierwsze dwa działy kursu są idealne dla osób które rozpoczynają swoją przygodę z Angularem i stanowią wprowadzenie do frameworka. Zaczynamy od prostych przykładów, gdzie budujemy formularz zapisu na newsletter. Jest to przykład pozornie prosty, ale dzięki łatwości z jaką Angular wprowadza dynamizm, manipulacje wyglądem a nawet animacje wcale taki nie będzie. Zobaczysz, że nawet prosty przykład możemy zamienić w interaktywny, dynamiczny interfejs, który wciągnie użytkownika!
W kolejnych sekcjach kursu nie robimy prostych ćwiczeń, ale krok po kroku budujemy prawdziwy projekt. Jeśli marzyło Ci się stworzenie i opubliklowanie eleganckiej strony WWW lub aplikacji z Twoim CV oraz listą projektów, to nie musisz marzyć dalej. Możesz podążać krok po kroku i z każdą lekcją budować własną stronę portfolio. Będziesz zaskoczony, że z podstawową znajomością JavaScript, HTML i CSS zaczniesz błyskawicznie tworzyć złożone eleganckie i interaktywne interfejsy użytkownika.
W kursie stawiam na produktywność. Koniec że żmudnym klepaniem setek lini HTML i CSS, koniec z zawiłym kodem jQuery. Wykorzystując bibliotekę Bootstrap i modyfikując gotowe elementy HTML możemy skupić się na tym co najważniejsze. Zobaczysz jak wykorzystać interpolacje i wiązania by struktura HTML i CSS zmieniała się sama po każdej akcji użytkownika. Dzięki poprawnemu użyciu mechanizmów Angulara, mozolna praca z DOM, którą znasz np. z jQuery staje się zbędna. Angular renderuje interfejs za Ciebie - prosto z danych które umieścisz w komponentach.
Już w pierwszych sekcjach kursu dowiesz się jak wykorzystać moduł formularzy w praktyce, by tworzyć automatyczne dynamicznie generowany formularze i pobierać z nich dane. Dowiesz się także jak znając wyłącznie podstawy JavaScript połączyć naszą stronę portfolio z serwerem i pobrać pliki JSON, w tym nasze projekty, opisy i zdjęcia ze zdalnego serwera!
Podczas pracy nad Twoim portfolio nie tylko poznasz podstawy pracy z angularem, ale w kilku lekcjach zagłębimy się na chwilę w samo działanie Angulara. O ile jest to wiedza zaawansowana, tak znajomość mechanizmów wykrywania zmian już na samym początku pracy z Angularem da Ci lepsze zrozumienie tego narzędzia i pozwoli pisać kod który będzie nie tylko prosty i czytelny ale też będzie działał błyskawicznie. W tym kursie nie tylko pokazuje jak czegoś użyć, ale kiedy, dlaczego oraz jak to działa od środka. Nawet jeśli Angular nie jest dla Ciebie nowością - ten kurs da Ci głębsze zrozumienie jego koncepcji.
Ten kurs przygotowałem dla osób początkujących w Angularze, ale w taki sposób by mógł on służyć także do powtórzenia, uporządkowania wiedzy czy uzupełnieniu braków dla osób które pracowały już z Angularem. Jeśli jesteś front-end developerem, ale jeszcze nie miałeś okazji zapoznać się z Angular, lub chcesz uzupełnić szczątkową wiedzę o fundamenty - to jest kurs dla Ciebie! Dodatkowo, jeśli zaczynasz przygodę z front-end ale masz już podstawy HTML i JavaScript, to kolejny ważny krok na Twojej drodze do kariery!
Angular 10+
W naszej aplikacji pojawiła się zupełnie
nowa sekcja moje ostatnie projekty i teraz cała ta treść.
Cała ta sekcja jest zupełnie statyczne.
Jest to po prostu jakiś przykładowy HTML i na razie jest OK.
Działa ale powiedzmy że w przyszłości będę
chciał często i regularnie aktualizować moje ostatnie projekty i nie chcę
tutaj wchodzić kopiować tego HTML a zmieniać w HTML u tutaj obrazku treść itd.
Chciałbym żeby ta cała sekcja tekstu wygenerować dynamicznie i żeby
każdy taki element pojawił się dynamicznie jeśli po prostu zmienię jakieś dane.
Czyli powiedzmy jakiś tam obrazek nazwa projektu i jakiś link.
Chciałbym żeby one zostały stworzone dynamicznie na podstawie danych.
Czyli zacznę od tego żeby utworzyć tutaj
jakąś tablicę czyli powiedzmy ostatnie projekty.
Ostatnie projekty
i każdy z projektów będzie miał powiedzmy jakiś identyfikator unikalny
nazwę i obrazek czyli nazwa projektu to
będzie projekt tej wersji powiedzmy jego.
I mieć
obrazek to będzie tutaj jakiś przykładowy obrazek znaleziony w internecie.
I na razie może linków sobie podróżujemy
później damy opcję z linka ok czyli mamy tutaj tablicę
obiektów i każdy z obiektów reprezentuje jeden z naszych projektów.
Postęp HTML nie ma tej HTML nie ma wyglądu
są czyste surowe dane może chociaż 3 różne projekty żebyśmy faktycznie widzieli.
że mogę wyświetlić różne dane na podstawie tej tablicy.
Czy chciałbyś żeby dla każdego elementu tej tablicy Amber wygenerował mi HTML.
Ale chciałbym żeby ten HTML zawierał w środku różne dane różne
informacje na podstawie właśnie tych parametrów jak możemy to zrobić.
Przejdę do pliku HTML dołączona do
komponentu com pozbędą się tych dwóch dodatkowych części
czyli tych dwóch elementów dodatkowych tego i tego.
Pozbędą się i chciałbym tylko tą część
powtórzyć tyle razy ile mamy elementów w naszej kolekcji naszej tablicy
też pamiętać żeby tworzyć dynamiczne elementy potrzeba szablonu Templeton.
Teraz możemy użyć gwiazdki a się pokazać w
jaki sposób działa taki mechanizm implantów od środka i Anti Temple.
Tutaj będzie bardzo fajnym rozwiązaniem.
Czyli teraz tak będzie tablet ponieważ ukryje ten element on zupełnie zniknie
kontener będę miał szablon i teraz będzie Ford.
To jest specjalna dyrektywa która pozwala z wielokrotnie w taki szablon na podstawie
jakich danych ja tu przekażę dane jako parametr NG for
off czyli dla każdego z po angielsku dla każdego z naszych projektów.
Utwór taką kartę i spójrzmy jak to wygląda.
Mam teraz trzy razy tą samą kartę jeśli bym u nas w danych powiedzmy
dodał jeszcze dwa elementy to miałbym tutaj 5 elementów.
Widzisz tyle elementów tutaj ile jest w tablicy tyle razy nasz Engine for
tyle utworzy nam tutaj elementów HTML tylko jeden problem.
Jak widzisz on cały czas ten sam element powtarza z dokładnie tymi samymi danymi.
Teraz jak ja mogę dla każdego z tych elementów wygenerowanych ustawić inne dane
poprzez tego fora inne parametry teraz co musimy zrobić musimy dowiedzieć
się jakie dane udostępnia nam ten Engine for.
Niestety spróbuję z kontrolerem
zajrzeć do środka i jak zajrzymy do środka to okazuje się że
Floor to jest nic innego jak klasa po prostu zwykłe teczki.
Nowa klasa Onet ma wiązanie do kontenera czy na wie gdzie jest kontener.
Ma nawiązanie do szablonu i ma do DivX czyli specjalnego kodu który
porównuje dwie tablice i wie ile elementów ma wyświetlić.
Elementów ma dodać G ma usunąć for.
To że przekazujemy nasze parametry gdzieś tutaj zobaczymy kontener.
Zobaczymy plakat.
Okazuje się że nasz ten plakat ma także
parametr czyli parametrem dla szablonu typem można powiedzieć szablonu
jest tu kontekst czyli mamy coś specjalnego na NG FOR w kontekst
i forów kontekst reprezentuje obiekt z parametrami z danymi które
dostępne są dla każdej interakcji naszej pętli.
Każdego będzie forma czy za każdym razem jeśli nam fort tworzy nowego drzewa z
jakimiś danymi nowy element HTML to każdy taki element choć taki szablon ma
dostęp do swojego obiektu kontekstu i ten kontekst zawiera takie dane jak np.
kolejność ilość.
Lista elementów ma informację czy jest
pierwszym elementem ostatnim parzyste nieparzyste i najważniejsza rzecz
implikuje i wskazuje na ten element na którym właśnie jesteśmy.
Jeśli już mogę do niego dostać to za
każdym razem będzie tam znajdował się inny obiekt.
Czyli tutaj chciałbym powiedzmy coś zmienić.
Niestety nie mogę po prostu napisać dolar
CIT nawet dlatego że powiedzmy mieli kilka pętli
no to nie wiadomo było do której ten się odwołuje czy do tej wewnętrznej
zewnętrznej a całość musi mieć dostęp do kilku.
Dlatego tak jak w zwykłej pętli FOR w
krypcie jeśli eteru już masz pętlę to musisz nazwać zmienną która wskazuje na
bieżący element tej pętli czyli termin NG for LED.
Nazwę mają zmienną projekt na przykład i pisze do niej wartość tej zmiennej.
Tu i teraz mogę tym zmiennej
projekt użyć w tym miejscu żeby wyświetlić tekst lub żeby dostać się np.
do obrazka.
Czyli tu mogę już teraz projekt i miecz podpowiada mi prawidłowo.
I zobaczymy teraz jak to będzie wyglądało. Ok.
Czy jak widzisz znowu mamy ten sam efekt.
Ale jest bardzo istotna różnica.
Tym razem nie muszę kopiować zmieniać
ręcznie HTML a mój HTML jest zupełnie odizolowany od moich danych.
Wystarczy że dam mu inną tablicę co ładuje inne dane.
Anglia dynamicznie powtórzył ten element tyle razy ile trzeba
i wypełni każdą możliwą odpowiednimi danymi byśmy mieli do obrazka
do opisu do linka dowolnych innych danych które będziemy chcieli użyć.
Czy widzisz for pozwala mi z wielokrotnie jakiś fragment przejść do Anglii który
tworzy niszczy ten wielokrotnie ale dodatkowo do każdej utworzonej kopii
tego szablonu możemy wstrzymać jakieś dane i dać im naszą nazwę którą potrzebujemy.
Tak jak pamiętasz te dodatkowe informacje.
Czyli jeśli dam sobie jeszcze zmienną Let
Last powiedzmy ostatni Left Forest pierwszy no to teraz mogę np.
użyć tych informacji.
Proszę państwa mnie też będzie klas
i przypisać sobie specjalne klasy czyli powiedzmy First projekt.
Jeśli zmienna First równa się King Last projekt Jeśli zmienna last.
Równa się czy tak że te dodatkowe informacje
wyciągnąć z będzie fora i ta zbada moje projekty to będę mógł np.
określić sobie tutaj specjalną klasą informację czy to jest pierwszy czy
ostatni projekt czyli te wszystkie informacje możemy także wykorzystać
tak jak komentarz na Emilii Plater możemy zacząć krócej czyli zamiast
definiować w ten sposób to pokaże ci jak możemy to zapisać krócej.
Wystarczy że na elemencie który Chcemy
otoczyć tabletem dodamy atrybut z gwiazdką będzie atrybut for.
I teraz bardzo ciekawa rzecz bo te
wszystkie atrybuty kiepskie parametry nie muszą już rozbijać tylko mógł zabić
wszystkie jednym ciągiem po prostu po gwiazdkę czyli end for Let projekt.
Jeśli pominąć zmienną i
ta pierwsza zmienna Impact oraz domyślne czyli gminę to domyślnie projekt będzie
wskazywał na tą wersję to opcji jest parametr off czyli powtarzamy co powtarzam
ostatnie projekty jeśli dodatkowe parametry użyć
rozdzielczość średni czas krypcie i to samo Let Last last
I Lead First równa się First nie może zmieni tę nazwę żeby nam
się nie mówiło czy to są nasze tutaj X Last i to będzie moja zmienna.
I teraz mogę w sensie
na tym samym elemencie użyć dlatego że już wiesz że tak naprawdę tak maska sprawia że
FOR wykonywany jest najpierw wykonuje szablon
i tworzy te zmienne dla szablonu czy szablon możemy je wykorzystać.
Czy ja mam ten długi zapis pełen
dzięki czemu rozumiesz które elementy odpowiadają co one znaczą.
I możemy to zwinąć do jednego wora który
wygląda jak taki zwykły fort działa skrycie lecz zmienna tablica ale dodatkowo
musimy wyciąć sobie taką informację jak pierwszy ostatni czy np.
mogę sobie LED.
I to się równa indeks.
Jeśli chce dokładnie znać pozycję numer tego elementu już innego zapisu użyć.
Możemy sobie to także jako indeks przypisać do zmiennej i np.
w każdym projekcie.
Tutaj mógłbym sobie użyć np.
+1 żeby sobie numerowane kolejność tych naszych projektów.
Pierwszy projekt. Drugi projekt.
Trzeci projekt w ten sposób jak widzisz NG for
Enterprise gwiazdką i kontener pozwala robić to samo co on 9 Switch ale
tutaj ilość elementów nie jest ograniczona a dodatkowo możemy przechować dane w każdy
z tych elementów i dane z tablicy możemy wyciągnąć i burzyć wielokrotnie w tym
samym szablon z tablicą wielu różnych elementów.