Angular: De Cero A Experto - Edición 2025 〈99% FULL〉
const userResource = resource( request: () => this.userId(), loader: async ( request, abortSignal ) => return fetch(`/api/users/$request`, signal: abortSignal ) .then(res => res.json()); ); 4.1 Zoneless Change Detection By disabling Zone.js and relying on signals, applications become faster and more predictable. An expert configures:
@for (product of products; track product.id) <product-card [data]="product" /> angular: de cero a experto - edición 2025
@if (user.isLogged) <user-profile /> @else <login-button /> const userResource = resource( request: () => this
@defer (on viewport) <heavy-chart /> @placeholder <div>Cargando gráfico...</div> loader: async ( request
This improves performance and readability. One of the most powerful features for beginners to grasp is @defer :
For data fetching, the new resource() and rxResource() APIs replace complex RxJS chains:
@Component( standalone: true, template: ` <input [(ngModel)]="searchTerm" /> <p>Resultados para: filteredItems().length </p> ` ) export class SearchComponent searchTerm = model(''); items = input.required<Item[]>(); filteredItems = computed(() => this.items().filter(i => i.name.includes(this.searchTerm())) );