رهام رفیعی تهرانی
رهام رفیعی تهرانی
خواندن ۲ دقیقه·۱ سال پیش

بحث جدید در انگولار با عنوان Built-In Control Flow

مقدمه

انگولار در حال تغییره و قراره مفاهیم پیچیده رو از جلوی توسعه برنامه نویس ها بردارند. یکی از این تغییرها قراره در Control Flow ها اتفاق بیفته. مدل فعلی بر پایه sctructural directive های از پیش ساخته شده است مانند NgIf یا NgforOf یا NgSwitch. مشکل این Flow Control اینه که بر اساس Zone تعریف شدند. یعنی در اپلیکیشن های بدون zone نمیشه ازشون استفاده کرد. تیم توسعه انگولار تصمیم گرفته Control Flow جدیدی ارائه کنه که بشه ازشون در اپلیکیشن های بدون Zone هم استفاده کرد. قراره جمله بندی (syntax) جدیدی در نسخه های بعدی انگولار استفاده بشه با ویژگی های زیر:

  1. شبیه Flow Control در زبان جاوااسکریپت باشه
  2. از HTML جدا بشه
  3. بشه بین بخش های مختلفش (مثلا if-elseif-else) تمپلت ها رو تعریف کرد.
  4. بشه با هم و داخل همدیگه استفاده بشن.
  5. مشکلات و سختی های روش فعلی رو کم کنند و راحت تر بشه ازشون استفاده کرد.
  6. باید بشه Control Flow های فعلی به راحتی به نسخه جدید تبدیل بشن.

۷. بهتره که توسعه دهنده ها بتونند این سینتکس جدید رو خودشون گسترش بدن یا نیازهاشون رو بهش اضافه کنند.

۸. بهتره که بشه همراه با بقیه ویژگی های انگولار ازشون استفاده کرد تا قدرت بیشتری به توسعه دهنده بده.


زبان های توسعه تمپلت زیادی در دنیای امروز هست که هر کدوم ویژگی ها و مزایا و معایب خودشون رو دارند و هر کدوم طرفدارهای خودشون رو هم دارند. در تیم توسعه انگولار در نهایت تصمیم گرفته شده که نسخه جدید از دیزاین سیستم mustache الهام گرفته شده.

خلاصه سینتکس های جدید

کنترل شرطی (if-else if-else)

به صورت ساده قراره به شکل زیر باشه:

یا مثلا به صورت زیر:


نحوه استفاده از async pipe

مثلا اگر قبلا اینطوری تمپلت پیاده سازی شده باشه:

میتونه تبدیل به این فرمت بشه:



کنترل سوییچ (switch-case-default)

این کنترل شامل break نخواهد بود.

مزیت عمده روش جدید به مدل فعلی اینه که الزامی نیازی به حضور container نداریم.


کنترل حلقه (for-empty)

نگارش کامل ترش این میشه:


قراره بعد از پیاده سازی این سینتکس:

  1. همه جای سیستم بهش دسترسی باشه و نیازی به import کردن نباشه
  2. سینتکس فعلی کاملا پشتیبانی بشه
  3. کلمه های کلیدی سینتکس جدید برای کاربران هایلایت بشه
  4. ممکنه در آینده بهش موارد دیگه ای اضافه بشه. مثل for..in یا async loop


خلاصه کلام

با اومدن این سینتکس جدید عملا یک قدم بزرگ برای برداشتن مفهوم پیچیده zone از انگولار برداشته میشه و تیم توسعه انگولار به هدفشون نزدیک تر میشن. موفق باشید‌ :)




control flowانگولارangularجاوااسکریپتjavascript
برنامه نویسی یک شغل نیست، یک هنره.
شاید از این پست‌ها خوشتان بیاید