Najważniejsze zmiany w Angular 19
Angular 19 wprowadza szereg nowych funkcji i usprawnień, które mają na celu poprawę wydajności aplikacji oraz uproszczenie procesu tworzenia kodu. Wśród nich znajdują się eksperymentalne prymitywy reaktywne, takie jak linkedSignal i resource API, a także funkcje wspierające incremental hydration oraz zaawansowaną obsługę diagnostyki. Te zmiany oferują nowe narzędzia, które przyspieszą prace deweloperów.
Reaktywne prymitywy linkedSignal i resource
Nowy prymityw linkedSignal pozwala na dynamiczne śledzenie zmian w sygnałach źródłowych i automatyczne przeliczanie wartości. Może być stosowany np. do zarządzania stanem wybieralnych opcji w aplikacjach. Z kolei API resource umożliwia obsługę asynchronicznych operacji z wbudowaną obsługą błędów oraz mechanizmami zapobiegającymi wyścigom danych. Dzięki tym narzędziom proces zarządzania danymi staje się bardziej przejrzysty i wydajny.
Usprawnienia funkcji effect()
Zmiany w funkcji effect() obejmują usunięcie flagi allowSignalWrites, co upraszcza sposób, w jaki można modyfikować sygnały w trakcie działania funkcji. Ponadto, efekty są teraz uruchamiane jako część cyklu detekcji zmian komponentów, co poprawia ich kolejność wykonywania i integrację z drzewem komponentów. Dzięki temu usprawnienia kodu stają się łatwiejsze do wdrożenia.
Nowe możliwości w diagnostyce i refaktorowaniu
Angular 19 wprowadza zaawansowane funkcje diagnostyczne, które pomagają wykrywać subtelne błędy w kodzie, takie jak nieużywane importy standalone czy funkcje, które nie zostały wywołane w odpowiedni sposób. Rozszerzono również możliwości narzędzi refaktorujących, co upraszcza migrację kodu i implementację najlepszych praktyk w projektach.
Stabilne wsparcie dla incremental hydration
Angular 19 umożliwia eksperymentalne wykorzystanie incremental hydration, czyli stopniowego odświeżania części aplikacji na żądanie. Ta funkcja pozwala poprawić czas ładowania oraz interaktywność aplikacji dzięki selektywnej aktywacji komponentów na podstawie wybranych zdarzeń, takich jak hover czy idle.
Wsparcie dla standalone i migracje
Od wersji 19, komponenty w Angular są domyślnie standalone, co upraszcza strukturę projektów i wspiera takie funkcje, jak lazy loading. Dodatkowo, wprowadzono migracje pozwalające automatycznie dostosować starsze projekty do nowych ustawień standalone, minimalizując ryzyko błędów i poprawiając spójność kodu.
Zmiany w obsłudze routera
Angular 19 wprowadza nowe funkcje w routerze, takie jak routerOutletData, które umożliwia przesyłanie dynamicznych danych między komponentami nadrzędnymi i podrzędnymi. Ułatwiono również konfigurację parametrów zapytań, co czyni obsługę nawigacji bardziej elastyczną i przejrzystą.
Wsparcie dla Playwright i TypeScript
W Angular CLI dodano obsługę Playwright jako alternatywnego narzędzia do testów end-to-end. W wersji 19 wprowadzono również wsparcie dla TypeScript 5.6, eliminując przy tym obsługę starszych wersji poniżej 5.5. Nowe funkcje TypeScript, takie jak predykaty typów czy wąskie operacje na stałych, poprawiają zarówno wydajność, jak i czytelność kodu.