قسمت 24/21: Angular 18 – انجمن DEV

Angular 18 خارج شده است. برای اولین بار، ویژگی اصلی یک ویژگی آزمایشی است: حالت بدون منطقه.
https://www.youtube.com/watch?v=gpaNrUmxpOw
تا Angular 17، zone.js تشخیص تغییر را فعال میکرد که DOM را بهروزرسانی میکند. با شروع از Angular 18، ما یک تریگر دوم داریم: تابع markForCheck()
، که به طور خودکار در داخل اجرا می شود async
لوله یا زمانی که مقدار یک سیگنال تغییر می کند. آن سیگنال باید در داخل یک الگو استفاده شود.
همچنین اتفاقات دیگری برای markForCheck()
مانند ویژگی غیرقابل تغییر اتصال یا رویدادهای DOM مدیریت شده.
markForCheck()
راه اندازی تشخیص تغییر آزمایشی نیست اما پایدار است. این یک تغییر قطعی است زیرا تشخیص تغییر ممکن است در خارج از zone.js نیز فعال شود.
اگرچه این یک مورد استفاده نادر است، اما میتوانیم رفتار را مانند قبل از طریق دوباره معرفی کنیم provideZoneChangeDetection({ignoreChangesOutsideZone: true})
.
با این حال، آنچه آزمایشی است این است که شما می توانید zone.js را به هیچ وجه غیرفعال کنید و فقط به آن تکیه کنید markForCheck()
.
که از طریق انجام می شود provideExperimentalZonelessChangeDetection()
.
ویژگی های دیگر عبارتند از “Event Replay” که برای رندر سمت سرور مهم است. هنگامی که برنامه هیدراته نشده است، یعنی Angular هنوز بارگذاری نشده است، و کاربران شروع به کلیک کردن در اطراف می کنند، آن رویدادها پس از هیدراتاسیون دوباره پخش می شوند.
provideClientHydration(withEventReplay())
را redirectTo
ویژگی در پیکربندی روتر، در کنار رشته موجود، اکنون یک تابع را نیز می پذیرد. این بدان معناست که زمانی که منطق برای تغییر مسیر مورد نیاز است، نیازی نیست که به محافظ های روتر مراجعه کنید.
export const routes: Routes = [
{path: '', component: HomeComponent},
{
path: '**',
redirectTo: () => isNight() ? '/404-night' : '404-day'
}
];
یک مقدار پیش فرض را می پذیرد. در واقع خیلی سرراست است 😄:
Nothing to see here :) `
FormGroup
، FormArray
، و FormControl
یک events
دارایی، که تمام رویدادهای مهم را به عنوان یک Observable
:
export class AppComponent {
name = new FormControl("", {validators: [Validators.required]})
constructor() {
this.name.events.subscribe((event: ControlEvent) => {
if (event instanceof StatusChangeEvent) {
console.log('status changed');
}
else if (event instanceof ValueChangeEvent) {
console.log('value changed');
}
// ...
})
}
}
بسیاری از ویژگی ها، مانند @defer
، @if
، @for
اکنون پایدار هستند (effect()
هنوز در پیش نمایش توسعه دهنده است).
به گفته Alex Rickabaugh، رهبر فناوری این چارچوب، میتوان انتظار ویژگیهای جدیدی را در نسخههای بعدی نیز داشت.
برای اطلاعات بیشتر، ویدئوهای مختلف، پستهای وبلاگ از انجمن و کانالهای رسمی را بررسی کنید.
Angular 18 Release – رویداد توسعه دهنده
پست رسمی وبلاگ