Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Купить рекламу: https://telega.in/c/sWebDev
Post #3173
1.22K
FR @swebdev
Showing posts older than #3174 · Back to latest

inject() в Angular позволяет инъектировать зависимости непосредственно в тело функции. Это альтернатива стандартному подходу через конструкторы.import { inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
export class DataService {
private http = inject(HttpClient);
fetchData() {
return this.http.get('/api/data');
}
}
inject() вызывает инъекцию Angular для получения нужной зависимости. Ее можно использовать в теле класса, а не только в параметрах конструктора.import { inject } from '@angular/core';
import { HttpTestingController } from '@angular/common/http/testing';
describe('DataService', () => {
let httpMock = inject(HttpTestingController);
it('should fetch data', () => {
// Логика теста
});
});


ChangeDetectionStrategy.OnPush будет проверять изменения?



ComponentFactoryResolver. С Ivy же, динамическая загрузка компонентов стала проще и интуитивно понятнее.ViewContainerRef.createComponent. Он позволяет загружать компоненты по мере необходимости, не загружая их в основной бандл приложения.import { Component, ViewChild, ViewContainerRef } from '@angular/core';
@Component({
selector: 'app-dynamic-loader',
template: `<ng-template #container></ng-template>`
})
export class DynamicLoaderComponent {
@ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;
constructor() {}
loadComponent(component: any) {
this.container.clear();
this.container.createComponent(component);
}
}

ValidatorFn?

isolatedModules в Angular 18.2, которая ускоряет сборку приложения на 10% за счёт использования транспиляции TypeScript через бандлер (например, esbuild) вместо обычного TypeScript. Эта опция позволяет оптимизировать код, инлайнить const и обычные enum, и убрать необходимость в оптимизациях на основе Babel для TypeScript-кода. Для включения этой функции нужно добавить "isolatedModules": true в tsconfig.json.