[NEW] Search for a job anonymously — check the details
Close
Angular v20: stabilizacja reactivity, nowe API i pożegnanie ze strukturalnymi dyrektywami

Angular v20: stabilizacja reactivity, nowe API i pożegnanie ze strukturalnymi dyrektywami

Zespół Angular ogłosił premierę wersji 20, skupiając się na stabilizacji istniejących funkcji, wsparciu dla GenAI, usprawnieniu debugowania oraz dalszym odchodzeniu od Zone.js. Wśród najważniejszych zmian znalazły się nowe eksperymentalne API, rozbudowane wsparcie dla renderowania po stronie serwera oraz aktualizacje stylu i diagnostyki, – informuje Angular Blog.

Stabilne Signals, nowe API i koniec dla *ngIf

Zespół Angular sfinalizował prace nad systemem reaktywności opartym na Signals, który od wersji 16 był dostępny w trybie preview. Obecnie funkcje signal, computed, input oraz view queries uzyskały status stabilny, a dołączyły do nich effect, linkedSignal i toSignal.

Wersja 20 wprowadza również eksperymentalne API oparte na Signals do zarządzania stanem asynchronicznym: resource oraz httpResource. Przykład wykorzystania resource do pobierania danych użytkownika:

const userId: Signal<string> = getUserId();
const userResource = resource({
  params: () => ({id: userId()}),
  loader: ({request, abortSignal}): Promise<User> => {
    return fetch(`users/${request.id}`, {signal: abortSignal});
  },
});

Równolegle wprowadzono nową wersję httpResource, pozwalającą na bezpośrednie wykorzystanie sygnałów w szablonach:

@Component({
  template: `{{ userResource.value() | json }}`
})
class UserProfile {
  userId = signal(1);
  userResource = httpResource<User>(() => 
    `https://example.com/v1/users/${this.userId()}`
  );
}

Zespół ogłosił także formalne rozpoczęcie procesu wycofywania dyrektyw strukturalnych *ngIf, *ngFor i *ngSwitch na rzecz nowej składni wprowadzonej w Angular 17. Przejście na nowy system wspiera komenda:

ng generate @angular/core:control-flow

Zoneless, SSR i ulepszenia DevTools

W Angular v20 tryb zoneless uzyskał status developer preview. Dzięki provideZonelessChangeDetection() i nowemu systemowi obsługi błędów w Node.js oraz przeglądarce możliwe jest działanie bez zależności od biblioteki Zone.js:

bootstrapApplication(AppComponent, {providers: [
  provideZonelessChangeDetection(),
  provideBrowserGlobalErrorListeners()
]});

Wydanie zawiera także stabilną wersję incremental hydration, umożliwiającą stopniowe pobieranie i aktywację komponentów:

@defer (hydrate on viewport) {
  <shopping-cart/>
}

Dodano także obsługę konfiguracji trybu renderowania na poziomie trasy (route-level rendering mode). Dla przykładu:

export const routeConfig: ServerRoute = [
  { path: '/login', mode: RenderMode.Server },
  { path: '/dashboard', mode: RenderMode.Client },
  {
    path: '/product/:id',
    mode: RenderMode.Prerender,
    async getPrerenderParams() {
      const dataService = inject(ProductService);
      const ids = await dataService.getIds();
      return ids.map(id => ({ id }));
    }
  }
];

Zespół Angular wspólnie z Firebase App Hosting przygotował narzędzia do łatwego wdrażania aplikacji SSR, SSG i CSR w chmurze Google Cloud.

Debugowanie, styl i wsparcie dla GenAI

W Angular v20 dodano wsparcie dla profilowania aplikacji bezpośrednio w Chrome DevTools dzięki integracji z Performance Panel. Po uruchomieniu ng.enableProfiling() możliwe jest śledzenie cykli renderowania, detekcji zmian i uruchamiania zdarzeń na wspólnej osi czasu z kodem JavaScript.

Zespół wprowadził również:

  • aktualizacje stylu (brak domyślnych sufiksów klas i plików),
  • pełne wsparcie typów i diagnostyki dla @HostBinding i @HostListener,
  • nowe funkcje do dynamicznego tworzenia komponentów (createComponent, inputBinding, outputBinding),
  • rozszerzenia składni szablonów: **, in, literały szablonowe.

Wprowadzono także eksperymentalne wsparcie dla testów w vitest:

npm i vitest jsdom --save-dev

Wspierając rozwój aplikacji AI, Angular udostępnia plik llms.txt oraz przewodniki na angular.dev/ai. Celem jest zapewnienie zgodności kodu generowanego przez LLM z najnowszą składnią Angulara.

Na zakończenie zespół ogłosił konkurs na oficjalną maskotkę Angulara — propozycje obejmują postać w kształcie logo, a także warianty inspirowane rybą głębinową (anglerfish). Udział w głosowaniu i zgłaszaniu nazw możliwy jest przez formularz RFC.

Avatar
Apr 24

OpenAI wprowadza GPT‑4.1 — nową rodzinę modeli zoptymalizowanych pod kątem kodowania i zadań z długim kontekstem

OpenAI udostępniła trzy nowe modele językowe w API: GPT‑4.1, GPT‑4.1 mini oraz GPT‑4.1 nano. Wszystkie obsługują kontekst o długości do 1 miliona tokenów i oferują istotne usprawnienia w zakresie pisania kodu, rozumienia długiego kontekstu oraz przestrzegania instrukcji. Modele nie są dostępne w ChatGPT, ale można je wykorzystać w aplikacjach poprzez interfejs API.
0
Jun 16

Nowa funkcja Gemini „Catch me up” poinformuje o zmianach w plikach na Dysku Google

Google wprowadził nową funkcję „Catch me up” opartą na Gemini, która ma ułatwić śledzenie zmian w dokumentach przechowywanych na Dysku Google. Od 3 czerwca 2025 roku narzędzie jest wdrażane stopniowo wśród użytkowników pakietu Google Workspace
0
Apr 30

Meta uruchamia Llama API i nowe narzędzia open source na konferencji LlamaCon 2025

Podczas pierwszej edycji konferencji LlamaCon, która odbyła się we wtorek w siedzibie Meta w Menlo Park, firma zaprezentowała nowy zestaw narzędzi dla twórców rozwiązań AI opartych na modelach Llama. Wydarzenie miało charakter międzynarodowy, a głównym celem Meta jest zwiększenie adopcji własnych otwartych modeli AI i wzmocnienie pozycji wobec dostawców zamkniętych rozwiązań, takich jak OpenAI.
0

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies