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 jednej z poprzednich lekcji poddaliśmy opcję czytaj więcej.
To dodatkowy tekst pokazuje by ten tekst dynamicznie wystawiony na
naprawdę spójrzmy jeśli spojrzymy w KOD to ten tekst cały czas tam jest po prostu
on jest ukryty i zmieniając w atrybut flagę Hidden na klik po prostu
dodajemy CSS zmieniamy w CSS em wygląd dzięki czemu ten tekst się pojawia.
W takich przypadkach jak ukrycie elementu
i pokazanie go później może być OK i żeby stronę internetową.
Tak przy dynamicznych aplikacjach
nie tylko interesuje nas zmiana tekstu zmiana właściwości czy zmiana stylu.
Chcielibyśmy mieć możliwość zupełnie
dynamicznego dodawania nowych elementów elementów HTML.
Jeśli chciałbyś chciałbyś mieć jakiś HTML to swego kodu.
To jest taka możliwość po prostu możesz
użyć tutaj atrybutów HTML i tutaj przekazać jakąś treść
jakieś tagi HTML które chcesz użyć w aplikacji i to w Reader jako HTML
jednak jest jak widzisz bardzo niewygodne bo musimy sklecić stringi sklecić tekst
ze sobą umieścić go w zmiennej w 3 kiwać tutaj i w ten sposób też nie możemy używać
ani komponentów ani dyrektyw jest to taki zwykły surowy HTML.
Jeśli chcemy żeby element został dodany
później żeby element mógł dodane być dynamicznie do strony
to musimy go umieścić w takim specjalnym elemencie który nazywa się Anglii Plate.
I jeśli jeszcze ten cały akapit drugi
w tym kontenerze takim hitem Plate to on zupełnie zniknie ze stron.
Już teraz zbadamy ten HTML i spróbuje poszukać tego tekstu to w
miejscu gdzie był ten tekst znajdziemy coś takiego jak kontener.
Teraz ten kontener to jest komentarz i ma
bardzo specjalne znaczenie bo ten komentarz jest specjalnym
wskaźnikiem takim punktem zaczepienia kotwicą kontenery.
Dzięki temu Hanower pamięta
w którym miejscu ma znajdować się ten nasz Elementarz HTML.
Nasze komponenty lub dowolna inna wartość.
Taki punkt zaczepienia.
I teraz musimy uczyć się mechanizmu
który ten kontener nam podłączyć w to miejsce ten nasz tablet szablon.
I takim najbardziej podstawowym
mechanizmem którego możemy użyć jest engine IF czyli jeśli po angielsku.
Jeśli warunek jest prawdziwy
czyli powiedzmy nie wiem 2 jest większy od 1 lub po prostu True.
Jeśli ten warunek jest w danym momencie
prawdziwy to Aguilera użyje tego szablonu żeby w tym miejscu przypaść na element.
Jeśli zmieni się strona S no to zostanie
zupełnie zniszczony nie tylko schowany ale zupełnie zniszczony.
Ten element tutaj pierwszy read more
ja ustawie żeby on powracał wartość zmiennej More czy zmieniał strona Falls.
Zobaczymy co się stanie tutaj jeśli ten
Folc lub tu znajdzie się w tym miejscu w Anglii.
Jak widzisz teraz nasz kontener troszeczkę
się zmienił tylko teren teraz wskazuje jaka jest bieżąca wartość tej dyrektywy.
Bieżąca wartość dyrektywy to jest w Polsce i naszego elementu tutaj nie widać.
Jeśli zmienię wartość wiatru to on w tym momencie w tym miejscu
utworzy nasz akapit jeśli znowu tutaj klika elementów nam się schował.
Co zmienić się ten z powrotem na drugi raz
to ten element ten cały akapit tutaj zostanie zupełnie zniszczony.
I to jest bardzo istotne.
Te elementy nie są chowane one są ponownie tworzone i niszczone.
Czy jeśli powiedzmy w waszym lecie znalazłby się np.
kolejny taki pasek progres.
I dodatkowo tutaj chciałam głosować dynamicznie.
Czy jest już od lat
i przy każdej zmianie buta ustawi sobie zmienną jakąś
równą event target i piszę tę wartość jako wartość tego naszego.
Progress bar czyli powiedzmy mamy jakieś takie dynamiczne elementy które zawierają
nie tylko tekst HTML ale także wiązania zdarzenia elementy alarmowe
wpisze powiedzmy tutaj nie wiem 30 5 pasek się zmienia.
W ten sposób.
I wszystko fajnie to działa
tylko pamiętaj o tym że jeśli używamy teraz szablonów GIF.
Jeśli ponownie zmieni tutaj wartość strona Focus to cały ten element wraz z
oponentami ze środka w środku z tym całym HTML em zostanie zniszczony.
Jeśli znowu go teraz kliknąć znowu z tyłu.
To zupełnie nowa czysta kopia.
I jak widzisz ten import jest pusty.
Czy są stworzone od nowa jego wartość stała zniszczona.
Nie mamy wartości w nim ale nasz komponent.
Jemu się udało zachować wartość ale tylko
dlatego że on tą wartość pobiera sobie jeszcze raz.
Poprzez to Properties tutaj chwalił które tu przekazałem.
Dlatego żartowali po prostu zapisał w bieżącym Home komponent.
Jeśli ten komponent progres bar przechowywał jakąś
wartość w środku jakiś stan i ta wartość nie byłaby powiązana z
komponentów Home tutaj przez tą zmienną Walią to niszczy ten komponent tworząc go
jeszcze raz tak żeby się zresetować do swej
oryginalnej wartości tak samo jak nasz import tutaj się wyczyścić.
Czy jak widzisz jest to bardzo fajne.
Fajna rzecz można sobie
tworzyć takie wycinki HTML razem z komponent tam też są tworzone niszczone.
Musisz pamiętać o tym że wszystkie
elementy w środku właśnie zostaną zupełnie zniszczone i znowu utworzone.
Następnym razem kiedy zmienimy tutaj Falls na true jeśli korzystasz często z
plakatów No to widzisz jest to troszeczkę pisania dlatego Chandler oferuje także
drugi skrócony zapis mianowicie zamiast tworzyć osobno ręcznie będzie ten Plate.
Jeśli chciałbyś po prostu
ukryć jakiś element HTML jakiś komponent jakąś grupę komponentów
to zamiast podać End Plate możemy uratować taki element na ten.
Używając po prostu do tego tutaj gwiazdki
i paska sprawi iż za nas po prostu o to czy ten element właśnie tam plagiatem
i możemy w Anglii od razu zapisać przy 2 st.
C.
Tutaj w tym miejscu nie musimy już nawet słów kwadratowych od
razu możemy podać warunek którego chcemy użyć czyli ekstra.
Analogiczne działa to w ten sam sposób jak ten tablet ale jak widzisz jest mniej
pisania jak pozwala kilka dodatkowych opcji jest bardziej rozszerzony.
Natomiast do codziennego użytku.
Jak widzisz ta opcja gwiazdka GIF na
elemencie pozwala dużo łatwiej z tego korzystać.
Pamiętaj jednak żeby nie zapomnieć o tych
gwiazd C bez gwiazdki nie ma wtedy szablonu.
Jeśli spróbuje użyć po prostu Anglików
w ten sposób no to zobaczymy błąd że właśnie widzisz.
Nie ma dostawcy.
Latem czyli on nie może zlokalizować szablonu.
Dzisiaj taki błąd gdziekolwiek nie ma dostawcy.
Temperaturę no to znaczy że używasz gdzieś jakieś
dyrektywy która wymaga Templeton a nie ma tam lata.
Najprościej dodać po prostu oznaczający dyrektywę gwiazdką.
Oznacza ona po prostu że oto ten element w Temple.
Stwórz ten plakat.
Oznacza to miejsce jako kontener żeby
wiadomo było w którym miejscu otworzyć elementy z szablonu.
Czyli te elementy oba pozyska i obserwując tą zmienną read more.
Przy każdym część detektorów przy każdym
wykrywaniu zmian na stronie będzie taki element dodawał usuwał tworzą niszczył.
Pamiętaj też że wszystkie wartości które chcesz przeżyły jakby pokazywania nie
musisz jakoś zbudować do zmiennych w komponent nadrzędny.
Jeśli tego nie zrobisz to Angola po prostu
zniszczy ten HTML wraz z wszystkimi komponentu ami.
Co ta może nie jest złą rzeczą dlatego że
tworzymy 20 30 komponentów i że ich nie potrzebujemy bo po prostu otaczające je
GIF i niszcząc je z pieniędzy na FOZZ tutaj w FOZZ możemy bardzo łatwo pozbyć
się wszystkich niepotrzebnych elementów żeby niepotrzebnie nie spowalnia nam
aplikacji i nie zajmowały miejsca na stronie.