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+
Wiemy już jak wykorzystać komponenty żeby podzielić sobie stronę tutaj na stronę
żeby jakieś bloki wizualne z dodatkową treścią.
Tutaj selekcjoner powinien zbudować coś bardziej zaawansowanego czego czy my
możemy tutaj parametry stawiać komponenty przekazywać już informacje o Mińsk.
Mamy takie paski postępu.
Te paski postępu można praktycznie
wykorzystać jako gotowe buty atrapa chciał mnie
HTML a nie było kopiować za każdym razem w ten sposób tylko mógł sobie stworzyć
komponent przekazać odpowiednie parametry i tych parametrów.
Mógł takie różne różnego rodzaju paski postępu używać w różnych miejscach w
aplikacji zaćmy wygenerowanie nowego komponentu
czyli generator komponent zrobię to także w folderze komponent czyli komponent.
I nazwę go powiedzmy Progress para.
Po pasek postępu to nowy generuje nowy komponent
i ten nowy komponent ja tutaj już umieszcza na stronie powiedzmy jest jedna
kolumna z którą kolumnę i w tej drugiej kolumnie życzę sobie aby
progres padł i ten nowo wygenerowany komponent możemy
nawet trzy razy użyć był już trzy paski postępu i teraz bar na progres bar płaski
i progres bar jeszcze przykładowy HTML zbór powinien mieć trzy paski postępu.
Zobaczmy.
Nie są zbyt eleganckie ale mamy trzy paski
postępu i teraz powinniśmy móc stawić im jakiś progres.
Tak stawiam sobie progres.
Zobaczymy jak to będzie wyglądało.
Mamy różne parametry parametry i atrybuty aria służą do czytników ekranu dla osób
słabo widzących nie widzących jest to bardzo przydatna informacja.
Tutaj w środku musi mieć szerokość czyli styl szerokość to jest 25 proc.
I to powinien zrobić ładny pasek który ma szerokość 25 proc.
mają wszelkie tą samą szerokość.
Chciałbym lub naszego komponentu przekazać odpowiednie parametry
czy wciąż ta wartość mogą być przekazywane jako parametr do każdego z tych pasków.
Teraz mamy kilka opcji możemy przeprowadzić dynamiczny parametr lub
przekazać ostateczną wartość czyli w tym progres bar komponent.
Jeśli ja chcę przekazać wartość tylko raz
na starcie i później nie chcę je zmieniać to mogę w konstruktorzy
napisać sobie powiedzmy atrybut to trzeba za importować tutaj sam kolor
i atrybut to jest jakby stała wartość który nie będziemy zmieniać.
Czyli powiedzmy jakieś etykieta typu string.
I tu podaje nazwę przez to.
Teraz mogę do każdego z tych elementów
przekazać normalnie jako zwykły atrybut etykietę czyli np.
wartości które tutaj chcieliśmy mieć.
CSS HTML z każdych parametrów które tu przekażę trafi do konstruktora
każdego z tych komponentów czy ten sam komponent tą samą jedną klasę
używamy trzy razy żeby już trzy komponenty trzy obiekty.
Pierwszy jest bar drugi trzeci i za karę tworząc taką klasę taki obiekt tej klasy.
Inne parametry i te parametry to przekażemy do tego konstruktora.
Możemy w HTML u progres bar komponent czyli w programie z kompletem L
możemy tu użyć jako na przykład taki label w którym gdzieś u góry etykieta
jakiś odstęp może i tutaj już tej zmiennej którą przekazali nam rodzice.
Zobaczmy teraz jak to działa.
CSS HTML super.
Teraz ta wartość którą tu mamy.
Powiedzmy że tę wartość będzie musieli zmieniać.
Będzie mieć teraz 30 już mógł zmieniać animowane itd.
To tam była dynamiczna i teraz dynamicznie wartości przekazać
to nie mogę być jego konstruktorzy to konstruktor otrzymuje wartość tylko raz
tak jak nazwa mówi przy konstruowaniu obiektu.
Jeśli chcesz mieć parametry które już się zmieniają to do tego jak pamiętasz import
i import pozwala tworzyć dynamiczna wartość.
Jeśli masz wątpliwości czułość atrybuty
czy impulsu no to lepiej użyć jest pusta zawsze wtedy będziesz się zmieniał.
Zatem jeśli masz pewność że to jest raz
tylko podaję tę wartość ten atrybut już nie będzie nigdy zmieniał
nie będzie dynamiczny not mógł użyć atrybutów czyli będzie dynamiczne
i ustalimy że to bez klamek a być też string.
Na początku że to jest zero.
I teraz to możemy tu wykorzystać dynamicznie czyli Still kropka.
To jest 25 proc.
mnie to jest nasza wartość.
Tu jest bardzo fajna rzecz nie muszę tych
procentów dodawać w tym miejscu mogę procenty dodać sobie tak z tej strony.
Super.
I to samo walił też mogę już do tych atrybutów karpia.
Tylko że atrybuty pamiętasz musimy użyć w specjalny sposób.
Jeśli nie ma takiego czegoś jak aria walił się zbadać to obiekt nie ma takiego.
Takie rzeczy mówi ten tyle minus.
Nam też sugeruje muszą użyć atrybut
w ten sposób czyli atrybutów przez cztery kropka.
I mogę się czegoś komuś Bartosz walił.
Natomiast własności które są dynamiczne mogę w ten sposób zdradzić.
Rodzic jeśli nie przekaże nic to będzie wszędzie zero to możemy zobaczyć.
Jest zero jeśli uruchamiając ten komponent
Progress bar dziś każdemu z nich przekaże inną wartość.
Mógłbyś to w ten sposób.
W ten sposób mógł też użyć tutaj dowolnego tak dynamicznego wyrażenia czyli np.
50 plus 25 zmiennej funkcji.
Mogę to przypisać label musi mieć wartość
ostateczną stałą nie mogę zmieniać dynamicznie.
Tak czy każdy z nich tych komponentów ma
ta sama HTML CSS czy nawet szykujemy różne parametry różne dane które możemy później
na różne sposoby wykorzystać w tym miejscu.
Co jeszcze mamy.
Mam tutaj jeszcze dodatkowe style kolory zobaczmy tak wysokość kolor
etykieta etykieta już mamy powiedzmy że chciałbym móc ustawić
wysokość albo wysoki albo taki cienki ustawić np.
tutaj jakieś urocze statusem sukces info
working i taki tryb jak Script czy też takie paski można było też włączyć
wyłączyć w aplikacji czyli nasz komponent komponent musi dostać dodatkowe
atrybuty i powiedzmy to czy on jest gruby czy cienki czy ma te paski.
Nie miałem tego za bardzo zmieniać
striptiz czyli paski raz ustawiamy nie zmieniamy czy jest gruby czy cienki.
Tego też czy nie będziemy dynamicznie zmieniać.
W ten sposób ustawienie jest fajna rzecz bo nie muszę tutaj
właściwie podawać parametrów i chcemy tylko żeby to tchórz
Falls wystarczy że ja tam taki atrybut w ten sposób Strip
i już żadnej wartości też istnieje tutaj będzie on już jako trup w nim zostawimy.
Dla porównania żeby go nie było.
I jeszcze ten status taki status może się zmienić więc ta dynamicznie.
Status niech będzie strajk
i teraz tak musiał litewski parametry które tu przekazuje różne statusem.
To miał być czerwony hangar mógł dynamicznie zmieniać
ale też bez impulsów mógł przekazać tekst w ten sposób.
Tak czy nie muszę dynamicznie wartość mogę
też jako tekst bo chyba Danger zobaczmy czerwone info sukces
czyli Danger status info i status sex super tester parametry które tu
przekazujemy my się tu pojawiają w krypcie i w HTML te
komponenty możemy je wykorzystać czyli odtworzyć sobie tutaj jeszcze raz a
Progress Bar może z tej strony Progress Park HTML tez możemy te wszystkie
informacje które tu mamy możemy wykorzystać czyli Strip.
No to jeśli powiedzmy Progress Bar
jak powiadasz możemy sprawdzić w ten sposób klas
zobacz jak to wygląda w stropie Strip to jest Progress bar Street.
Chcemy żeby ta klasa
tylko aktywna kiedy tu mamy ten parametr Strip czyli Progress bar Script
tylko wtedy jest aktywne kiedy Strip równa się tak czy ta zmienna Strip PET.
Okazuje się że jedno jest potrzebne. Czyli mój błąd.
To tu zmienia Script striptiz.
I wtedy też zmienisz to moją literówki.
żeby było przez jeden dzień strajku OK.
Czyli chcemy żeby było w paski.
Więc zobaczymy tu.
Jeśli ktoś przekaże paski to tu się pojawią.
Jeszcze dla testu usunął z jednego z nich
paski zobaczymy czy na prawidłowo zadziała.
I coś jest nie tak bo naszych pasków tutaj nie widać.
Więc jak to sprawdzić.
Tu przekazujemy różne atrybuty do konstruktora i teraz tutaj.
Ja mam jeszcze słówko Damage że nerka się zatrzymała w tym miejscu już
mógł podejrzeć co się kryje w tych parametrach.
Czyli jesteśmy tutaj Progress bar
komponent wiesz nic musiałem specjalnie robić po prostu przeglądarka ma otworzyć
kiosk opartą konsolę automat się zatrzyma w tym miejscu i mogę
zbadać poszczególne zmienne Chin jest striptiz z pustym stringi.
I label jest Muller czyli Wish Straight.
Pierwszym komponentu jest pustym ringiem
czyli przekazem pusty String tutaj puściłem go dalej kontynuuje.
Drugi komponent już CSS Strip jest pustym stronie kontynuuje.
W trzecim elemencie w tym elemencie którym nie ma trybu stricte zamiast pustego
treningu wprowadziłem cię w błąd że jak podam sam parametry bez niczego to
nie będzie toru tylko będzie po prostu pusty.
Czy to jest to samo co pomysł pusty string.
A jak nie napiszę tego straight to to samo co mi zrobił po prostu coś takiego
równa się nurt odczuwa każdy muszę włączyć w ten sposób atrybuty i też krzyczy na
mnie od razu że nie mogę dynamicznie przekazywać wartości do atrybutów
dynamiki mogę tylko przekazywać import atrybuty nie mogę robić dynamicznie.
Ok czyli robimy w ten sposób i muszę pamiętać postawić tutaj mur
czyli wchodzimy w progres komponent i nie równa się tylko jeśli nie równa się ból.
Ok.
Zobaczmy teraz tam czy to zadziała tutaj muszę pochwalić Top Gear.
Nie przeszkadzało F5 i mamy paski i ten trzeci jak widzisz nie ma paska.
Jest wszystko OK co status musimy sprawdzić status test
można zrobić to w ten sam sposób czyli klas powiedzmy b g info.
Jeśli co jeśli status quo równa się
info i tak musiałem zrobić to dla każdego elementu osobno czy Węgier
i tam jeszcze było był sukces raczej za każdym razem się zmieni status
ten dynamicznie lub nie to chcę zmienić klasę info Danger sukces
zależy od tego jaki jest status to wszystko oczywiście będzie sam
a ktoś zawał wędrował i jeszcze zmieni w z powrotem.
Bochum komponent dodam do wszystkich Strip żeby to się sprawdzało
i teraz zajrzymy do ośrodka progres bar czy widzisz tutaj ileś różnych klas ustala
tutaj mógłbym też wyświetlić na przykład jeszcze wali
w środku się w pasku wyświetlają też jakieś style ustawia
tryb jest tylko jeden styl ale mógłbyś tych też więcej procenty piksele.
że nie będzie tam bardzo cienki jeśli coś niż jest Tin.
Tak samo Fin nie równa się.
To niech będzie cienki
a zrobieniem auto cokolwiek było oryginalnie możemy też zamiast pikseli np.
wiem kremów
wystawiłem przed ma być bardzo cienki lub normalna wysokość czcionki
i zobacz ile różnych klas ustala ileś różnych stylów.
I to jest jeden sposób jeśli masz wiele różnych klas dodaje iż ty
jesteś jednocześnie tym elemencie to można to inaczej zapisać.
Takie klasy możemy zgrupowane w jedno księgi klas.
I pociski klasy jako obiekt jako mapę
gdzie każdy klucz tego obiektu jest nazwą klasy CSS owej
czyli nazwa klasy CSS a wartością jest wyrażenie
czyli czy status równa się info czy status równa się Węgier czy sukces czy
ktoś różnych klas od razu sprawdzić tylko ta uwaga bo jak nazwie klasie są silniki.
Oczywiście tak jak w obiektach trzeba w krypcie opiekować to w ten sposób.
Czyli to jeszcze klasa progres.
Tak może w jednym takim związaniu
od razu sprawdzić ilość różnych warunków i ustawić ileś różnych klas.
Tak czy nie musimy każdy osobno możemy to zrobić w ten sposób.
To komentuje jeśli chodzi o style.
Ta sama zasada ja chcę mieć kilka naraz.
To jest dyrektywa
tak Aguero dodaje swój własny specjalny atrybut który pozwala ci zrobić prościej
szybciej czyli mogę ileś rzeczy za jednym razem zmienić czyli mały procent.
To się równa
i RM się równa i podatek ten sam warunek tutaj masz porównać ten zapis tu i tu.
Jeśli po kilka klas jest to troszkę mniej pisania.
I też widać od razu wszystkie klasy się zmieniają tak.
Czyli jeśli ten warunek jest prawdziwy przy oderwaniu dodaj klasę
jeśli któryś warunek jest fałszywy zmienił się na forsę.
No to usuń tą klasę i tak samo style
wartość w Realu przy tej własności czasowej wartość tego wyrażenia.
02 albo 1 przy przecież tutaj zobaczmy.
No i super paski postępu.
Każdy ma inny kolor inny styl inne
wartości czy komponenty możemy nie tylko wygląd zachowanie treść
przekazywać i możemy na różne sposoby w różnych kompletach
kombinować wartości tego komponentu czyli dane liczbowe skryptu bin dodać do klas do
stylu do tekstu jako statyczne atrybuty lub jakieś dynamiczne wartości tutaj
poprzez import import będzie się dynamicznie zmieniał jeśli rodzic przekaże
tutaj inną wartość lub zmienna wreszcie coś się zmieni na inną wartość to akurat
cos ciekawego zobaczę te klasy B Info Info węgiel będziesz sukces sukces
One tak mają bardzo takie właściwie takie same nazwy
więc my możemy malować to ręcznie klasa do elementu elementu.
Natomiast te klasy też bardziej dynamiczne to też możesz po prostu użyć słówka klas
bez podawania tutaj klasy I tu ktoś dynamicznie czyli powiedzmy BG
leśnik plus status z klasy to razem nie musimy kupować Tesco.
Ciekawe czy mimo że tutaj jakby przekazuje
cały obiekt klas cały parametr klas to on nie pisze tej klasy którą tu mamy.
Nie pisz tych klas które tu się znajdują.
On tylko i to da te nowe klasy lub usunie te klasy dalej
będzie status pozostałe klasy powinien zostawić bez zmian.
Nadal to działa bez problemu mam te same
kolory te same style tak czyli można kupić statyczne klasy.
Możesz cały obiekt mapę klas i jakieś wartości.
Możesz też całkowicie dynamicznie
wygenerować nazwy klas które chcesz przekazać dyrektywy.
Tutaj będzie klas.
Pozwalają nam troszkę lepiej uporządkować krócej napisać po prostu w wiele różnych
style które chcemy dynamicznie przekazać do naszego komponentu.