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+
O ile Englert pozwala nam robić różne
bardzo fajne rzeczy nie zawsze jest sens samemu pisać cały kod.
Istnieje masa różnych bibliotek część tej
biblioteki jest w specjalnych wersjach klarownej natomiast masa różnych bibliotek
istnieje które po prostu pracują bezpośrednio na Krypcie na HTML u.
Nie są za bardzo przystosowane do pracy.
W tej lekcji spróbujemy zastosować
bibliotekę do animowana liczb i pakuje ją w ogóle.
Zobaczymy jak to można zrobić.
Czy mam jakieś takie liczniki.
Dane wyglądają OK ale
ja bym chciał dać taki efekt żeby te liczby się animowany powiedzmy w
ten sposób znalazły gdzieś sobie bibliotekę kodu metr.
Zobaczmy dokumentację tą bibliotekę możemy zainstalować czyli międzyczasie.
Jak oglądam dokumentację zrobię n.p.m.
Instal do biblioteki
niech ona się instaluje w naszym projekcie i w tym czasie spojrzał dokumentację.
Jak widzisz tutaj żeby zacząć pracę
my musimy znaleźć po prostu elementy na stronie skryptu lub gwary utworzyć metr
i wskazać go w którym miejscu chcemy naszą animację dodać i wyświetlić.
Jeśli chcemy
zmienić tą wartość animowanych mogą różne funkcje wykonać mogę np.
zaktualizować.
Czyli w ten sposób działa większość bibliotek trzeba z kredytowych
że musimy utworzyć jakiś obiekt jakąś funkcję wykonać wskazać jakiś element
i manipulując tym obiektem manipuluje tym co się dzieje na ekranie.
To jest projekt klerem.
Jest troszeczkę inaczej
wygląda ten plan nie mamy szablonu i mamy wylądować więc pytanie jak możemy takie
coś połączyć z angola czyli pierwsze że tutaj
to zainstalowano bibliotekę metr i teraz chciałbym użyć biblioteki
ale tam złoży się globalnie czy też po prostu byle gdzie.
Ja postaram się tą bibliotekę pakować w komponent żebyśmy mogli w łatwy sposób
później wielokrotnie korzystać z tej biblioteki.
Czyli wygeneruje dodatkowy komponent.
Nazwa może po prostu Counter czyli licznik
i umieszcza tak użyje może po prostu wewnątrz komponentu czy otworzyć jakiś
komponent i spróbuje za importować
nasz ten metal zrobić import do mety.
I mamy taki problem że pierwszy problem to jest to że TK np.
nie może nie mieć typów czyli nie ma typu nie mieli żadnych podpowiedzi.
Zawsze spróbować zainstalować pakiet np. coś takiego.
Intel Instal Meteor czy możesz zobaczyć czy istnieje
dodatkowa paczka która zawiera typy lipcowe żeby były podpowiedzi.
Tutaj niestety nie mamy takiej nie mamy takiej paczki z typami.
Czyli jest to w ogóle całkowicie Java skrypty biblioteka.
Nie mamy tutaj żadnych informacji nie mamy żadnej podpowiedzi.
Więc ja spróbuję po prostu wszystko z tej
paczki wyciągnąć jako zmienna o metr
i teraz próbując używać zmiennej muszę niestety prowadzenia dokumentacji tej nie
będzie mi za bardzo podpowiadał co z tym zrobić.
Czyli teraz tak powiedzmy mamy konstruktor mamy agonii nikt nie może w tej metodzie
postaram się odtworzyć tak jak było to w dokumentacji nowe a do mety.
PS Jest problem muszę wskazać element na którym chcemy umieścić ten cały metal
więc gotowe komentuje zobaczymy w ogóle czy aplikacja działa
Centrum jeszcze gdzieś na stronie czyli powiedzmy gdzie mamy te nasze liczby.
W ten sposób to ja sobie wezmę taki jeden element HTML.
Zamieni go na Counter.
W ten sposób przepraszam są jakieś parametry czyli np.
liczbę i etykietę czyli to będzie po festiwalu.
I niech jeszcze będzie label etykieta.
Jak pamiętam tutaj mogę dać sobie te
parametry czyli wiesz możemy służyć nam należy przekazać to komponentu a komponent
będzie musiał te parametry przykładać się jakoś do biblioteki
w której chce naruszyć czyli wartość na początku 0 impuls dla Lewego
etykietę To będzie tekst ok i teraz Counter HTML mogę użyć Gwatemala.
I tu mogę położyć naszych danych czyli
Walią i mogę określić tutaj liczbę czyli lud widzi że tam jest dynamiczny
super bede mógł wielokrotnie tego samego używać będę mógł ostrzeliwać jakieś dane
pytanie tylko co z naszą biblioteką zobaczymy naszą aplikację tutaj świeże.
Już widzę że na razie żadnych błędów nie ma nic się nie dzieje czyli zobaczymy.
Muszę mieć referencje do elementu mógł zrobić to w ten sposób czyli mógł po
prostu dać mu jakąś klasę i wyszukać te elementy.
Jest tylko jeden mały problem
mianowicie jeśli już jakieś klasy powiedzmy sobie to counter
i będę chciał zlokalizować ten element na stronie używając tej klasy Counter
wszystko świetnie i mam tylko jeden komponent.
Co się stanie jeśli ja kilka komponentów i na stronie znajdzie
się w ten sposób kilka razy ta sama klasa różnych komponentów.
Nie chciałbym żeby jeden komponent w żaden sposób jakby inni ingerował w stan innych
komponentów żeby Komponent 1 zmieniał stan innego komponentu.
Jak to zrobić jak mogę zlokalizować jakiś
element który znajduje się tylko dokładnie lokalnie wewnątrz naszego komponentu.
Tak ponieważ możemy do oznaczania elementów użyć tzw.
lokalnych referencji czyli mogę sobie
zrobić przykład Enter LM ref czyli zrobić jakąś lokalną nazwę lokalu referencje.
Problem jest taki że lokalne referencje ona nie jest dostępna tutaj jeszcze w
krypcie po prostu my musimy już stąd wydobyć żeby coś takiego elementu
mógł sobie stworzyć tutaj ręcznie zmienną ale to za mało.
Jeśli ja chce element ref referencje do
tego elementu to muszę dodatkowo oznaczyć to jako czwarte dziecko w widoku czyli
muszę zaznaczyć że szukam elementu o takiej nazwie
i chcę być o ten typ czyli chcę wyciąć element HTML
typu komponent albo szablon albo inny element wysunąć np.
referencje do komponentu aby referencje do
lata do innego elementu na wersję faktycznie fizycznie.
Element ten zobaczymy tutaj jeszcze do gier.
Przejdziemy do przeglądarki i zobaczymy co to się dzieje.
Zatrzymamy się w tym miejscu i zobaczmy co kryje się w naszym komplecie
Ibis pod zmienną Counter LM czyli bez Counter element.
Niestety jest to Android i teraz dlaczego
dlatego że komponent się utworzył już ale elementy tutaj nie zdążyły się jeszcze
jakby zaczekać wyemigrować musimy poczekać jeszcze.
Czyli konstruktor to jest za wcześnie.
Dopiero klasa się utworzyła będzie mini za wcześnie.
Mam dopiero wartości impulsów
czyli mamy nasz zwalił już slabo ale jeszcze HTML nie jest
gotowy i jeszcze te elementy się nam tutaj nie podłączył jakby do HTML a do stron.
Drugą kolejną metodę jest to change after
the Night tak czasem poczekać aż cały HTML będzie już gotowy pod pętlę.
Wszystkie elementy referencje komponenty są zamontowane.
Dopiero wtedy będę chciał się odwołać do
tego elementu jak już na pewno istnieje i to jest już nie wiem może być tego tutaj
globalnego wyszukiwania tylko odwołać się do Counter LM.
Spróbujmy jeszcze raz.
Jesteśmy troszeczkę później i nie widzisz tamte elementy.
Jest obiektem element
który w środku zawiera referencje do naszego Diva tu będzie negatyw element.
To jest nasz Thief czyli ten nasz element.
Możemy przekazać teraz do naszego metra
żeby nam anonimowo ten element zobaczmy 80 czy coś poszło nie tak.
Więc ja spróbuję jeszcze jedną rzecz
zapisze sobie gorset Enter i postawimy tutaj jakąś wartość czyli update ds.
Walii.
Coś się popsuło.
Prawdopodobnie brakuje nam jakichś CSS ów dołączę globalnie może do wszystkich
naszych steli i dołączę także skórkę do metra żeby te nasze liczby się
troszkę nie rozjeżdżają żeby one były ładnie wyświetlane czyli te przygotowane.
Domyślam jakąś skórkę czyli dołączy jakiś domyślne tyle że do
metra i jak widzisz teraz się świetnie animacje.
Jest OK.
Musi jednak uważać będą antybiotyki które właśnie nie są przygotowane do Prezesa RM
nie są stworzone jako moduły nie mają typów itd.
To mogą być pewne problemy przy kompilacji.
Jeśli spróbuje jeszcze raz projekt może uruchomić i skomplikować.
Zobaczmy też czy nie będzie żadnych
problemów przy budowaniu kombinowanie naszego projektu bo te biblioteki stare
drzewa sklepowe bez modułów bez typów czasami stanowią problem przy
optymalizacji przy budowaniu tutaj naszego komputera.
Jak widzisz pojawia się taki problem
Morning że niektóre biblioteki jeśli nie są modelami mogą powodować optymalizację
Englert nie jest w stanie analizować co w tym jest modułu który nie posiada tych
wszystkich informacji które on potrzebuje do optymalizacji.
Nie znam struktury tego pliku nie jest go zoptymalizować.
Mam taki ułamek przejść na jasną stronę poczytać więcej na ten temat.
Ja pokażę tutaj Dawson to damy sobie taką opcję specjalną ale on jest panem.
Czyli pozwalamy na importowanych modułów które nie są do końca kompatybilne.
Jeśli spróbuje to zrobić jeszcze raz to powinien teraz już akceptować bibliotekę.
Czułem że PM rozumiem że jest to stara biblioteka.
Czy ona może być kompatybilna.
Więc można to zrobić w ten sposób aczkolwiek zawsze warto rozejrzeć się czy
nie ma od razu już biblioteki klarownej czy ktoś prostu już za nas nie poświęcił
tego wysiłku w stworzenie właśnie takiego komponentu opracowanego za nas.
Czyli się kombinuje
jak odświeżyć stronę widzisz te liczby się elegancko a nie moją.