W tym momencie mogłeś już słyszeć o komponentach dynamicznych, które są bardzo przydatne do tworzenia bardziej dynamicznych aplikacji. Pozwalają nam na dynamiczne ładowanie komponentów w czasie wykonywania, w zależności od jakiejś niestandardowej logiki, bez konieczności tworzenia komponentu, który jest nadęty mnóstwem ngIf.
Jeśli nie słyszałeś jeszcze o Dynamic Components, proponuję obejrzeć wykład Shmueli Jacobsa na Angular Connect:
W mojej codziennej pracy buduję system, który jest jak CRM zarządzający różnymi produktami, które mają wspólną część podstawową, ale także pewne specyficzne dla produktu elementy. Aby komponenty były bardziej przydatne do ponownego użycia, wprowadziłem tu i tam Dynamic Components, które ładują poprawny komponent specyficzny dla produktu w zależności od InjectionToken, który określa aktualnie aktywny produkt. Wszystko było ładne i dobre, dopóki nie spróbowałem zrefaktoryzować przepływ kroków, który ma kilka typowych kroków, ale także kilka kroków specyficznych dla produktu. Był to problem, ponieważ przepływ kroków jest nie tylko oparty na komponentach, ale także zależny od tras. Oznacza to, że przepływ krokowy produktu może mieć kilka dodatkowych kroków, tj. trasy, które różnią się od pozostałych. Liczba kroków może się również różnić.
Brudnym obejściem byłoby utworzenie stałej liczby tras o nazwach: step1, step2, step3, a następnie dynamiczne ładowanie komponentu w każdym kroku, ale ponieważ liczba kroków jest różna, nie jest to możliwe. Właściwym rozwiązaniem jest użycie routingu dynamicznego .
Zwykle definiujemy trasy modułu bardzo statycznie w module routingu w ten sposób:
Po załadowaniu modułu nie ma logiki, która mogłaby kolidować ze statycznym przypisaniem tras, więc zawsze będzie trasa domowa i nic więcej.
Spójrzmy na bardzo uproszczony przykład, który może nie ma większego sensu, ale ma na celu zademonstrowanie działania routingu dynamicznego:
Chcemy stworzyć aplikację z następującymi trasami:
Teraz, gdy definiujemy nasze trasy w sekcji providerów, możemy skorzystać z obiektu definicji dostawcy useFactory . W ten sposób możemy przekazać fabrykę zawierającą logikę decydującą o tym, jak powinny wyglądać trasy.
Krótkie przypomnienie: Jeśli załadowałeś moduł o 5:59 i poczekałeś do 6:01, trasa dni nie będzie dostępna, ponieważ konfiguracja trasy została już wcześniej wykonana. Oznacza to, że logika definiująca trasy dzieje się tylko raz, gdy moduł jest ładowany.
Mam nadzieję, że pokażę Ci coś nowego i ciekawego. Jeśli interesuje Cię Angular, sprawdź moje inne posty na blogu na Medium.
Pełny przykład jest dostępny na moim GitHubie:
Kiedy dorastasz, zwykle słyszysz, że świat jest taki, jaki jest, a twoje życie polega na tym, by żyć swoim życiem w świecie, nigdy nie ryzykując życia, po prostu podążaj wyznaczoną ścieżką i umrzyj w końcu i staraj się nie za bardzo walnij w ściany. Ale to bardzo ograniczone życie.
Często mamy trudności z wdrożeniem tego, co wiemy, że jest dla nas dobre. Od mówienia drugiej osobie, że ją kochamy, po pamiętanie, by mówić jak pirat, zawsze znajdą się tacy, którzy twierdzą, że dzień, tydzień lub miesiąc wydarzeń nie jest potrzebny, ponieważ już to robią.
W dzisiejszym szybko zmieniającym się krajobrazie biznesowym koncepcja pracy hybrydowej i zdalnej nabrała bezprecedensowego rozpędu. Ponieważ firmy wciąż dostosowują się do zmieniających się potrzeb i oczekiwań swoich pracowników, eksperci z różnych dziedzin zebrali się, aby omówić korzyści, wyzwania i przyszłość tego transformacyjnego sposobu pracy.
W zeszłym tygodniu zauważyłem komunikat prasowy, wysłany za pośrednictwem PressGazette (brytyjski serwis informacyjny). W artykule ogłoszono, że Acast, skandynawska firma hostingowa i reklamowa podcastów, będzie przewodzić konsorcjum „prawdopodobnie najbardziej wpływowych” wydawców podcastów.
Swędzenie w mojej dłoni rozszerzyło się, gdy targowałem się z miejscowym księgarzem o kolejną książkę. Ta książka, podobnie jak pozostałe, które ostatnio kupiłem, znalazłaby swój tron na moim stosie „Do przeczytania” (TBR); a mimo to kupiłem.
Ile razy bez zastanowienia wyrzuciłeś plastikową butelkę, szklany słoik, aluminiową puszkę lub pakiet zielonej energii? Ile razy chciałeś dostać coś w zamian za ich recykling? Jeśli jesteś jak większość ludzi, odpowiedź brzmi prawdopodobnie wiele razy. Recykling jest często postrzegany jako kłopot, przykry obowiązek lub obowiązek, który nie przynosi żadnych natychmiastowych ani wymiernych korzyści.