برنامه نویسی

قسمت 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 – رویداد توسعه دهنده

ما هیجان زده هستیم که آخرین ویژگی ها و به روز رسانی های Angular v18 را اعلام کنیم. از آینده انگولار مطلع شوید! در کانال انگولار عضو شوید → https://g…

فاویکون
youtube.com

پست رسمی وبلاگ

0%2AlkpgKWc22o4uaJJ4

امروز ما هیجان زده هستیم که نقطه عطف بعدی در تکامل Angular را به اشتراک بگذاریم! در طول سه نسخه گذشته، ما بسیاری از موارد جدید را معرفی کرده‌ایم…

فاویکون
blog.angular.dev

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا