#Angularinterview
سوال و جواب مصاحبهای Angular - روز دوم (Angular Lifecycle Hooks)
ادامهی سری روزانه مصاحبه Angular؛ این بار میریم سراغ موضوعی که تقریباً توی بیشتر مصاحبهها حتماً بهش گیر میدن.
🔹 موضوع روز ۲: Angular Lifecycle Hooks
1️⃣ سوال: Angular lifecycle hooks چی هستن؟
پاسخ: Lifecycle hooks یک سری method هستن که بهت اجازه میدن به فازهای مختلف زندگی یک component دسترسی داشته باشی - از لحظهی ساخته شدن تا زمان destroy شدن.
2️⃣ سوال: پرکاربردترین lifecycle hookها کدوما هستن؟
پاسخ:
• متد ngOnInit()
بعد از اینکه component ساخته و initialize شد، فقط یک بار اجرا میشه.
⚡️ بهترین جا برای API callها و تنظیمات اولیه.
• متد ngOnChanges()
وقتی مقدار input تغییر کنه اجرا میشه.
⚡️ زمانی استفاده میشه که component باید به تغییرات دادهی parent واکنش نشون بده.
• متد ngAfterViewInit()
بعد از اینکه view مربوط به component کامل initialize شد اجرا میشه.
⚡️ برای دسترسی به DOM و منطق viewChild خیلی کاربردیه.
• متد ngOnDestroy()
قبل از اینکه component از بین بره اجرا میشه.
⚡️ برای cleanup کردن subscriptionها، timerها و event listenerها و کلا پاک سازی حافظه استفاده شده است که بسیار مهمه که رعایت بشه برای بهبود performance سیستم.
در Angular در واقع Hook های بیشتری از موارد یاد شده وجود داره که دوست داشتید میتونیم اونا رو هم مطرح و بررسی کنیم، موارد گفته شده پرکاربردترینها بودن.
3️⃣ سوال: فرق constructor با ngOnInit() چیه؟
پاسخ:
• constructor: بیشتر برای dependency injection استفاده میشه که دیگه بهتره به جای استفاده از constructor از inject function بهتره استفاده بشه.
• ngOnInit() : برای منطق initialize شدن component
4️⃣ سوال: چرا ngOnDestroy() مهمه؟
پاسخ: اگر subscriptionها و timerها و listenerها رو cleanup نکنی، سیستم دچار memory leak میشه و مشکل performance پیش بیاد.
⚠️ نکته: به جای استفاده از unsubscribe ها در event های rx بهتره از takeUntilDestroyed استفاده کنید که خودکار بعد از destroy شدن component تون subscription رو unsubscribe کنه
📌مفهومهای Lifecycle hooks نشون میده چقدر رفتار component رو توی اپلیکیشن واقعی درست میفهمی.
➡️ ادامه: روز ۳ بهزودی… (Change Detection و OnPush Strategy) ⚡️🧠
✍🏻 منتظر نظرات و پیشنهادهای سازندهتون هستم.
#angularlifecycles
#angular
@angularcafe
سوال و جواب مصاحبهای Angular - روز دوم (Angular Lifecycle Hooks)
ادامهی سری روزانه مصاحبه Angular؛ این بار میریم سراغ موضوعی که تقریباً توی بیشتر مصاحبهها حتماً بهش گیر میدن.
🔹 موضوع روز ۲: Angular Lifecycle Hooks
1️⃣ سوال: Angular lifecycle hooks چی هستن؟
پاسخ: Lifecycle hooks یک سری method هستن که بهت اجازه میدن به فازهای مختلف زندگی یک component دسترسی داشته باشی - از لحظهی ساخته شدن تا زمان destroy شدن.
2️⃣ سوال: پرکاربردترین lifecycle hookها کدوما هستن؟
پاسخ:
• متد ngOnInit()
بعد از اینکه component ساخته و initialize شد، فقط یک بار اجرا میشه.
⚡️ بهترین جا برای API callها و تنظیمات اولیه.
• متد ngOnChanges()
وقتی مقدار input تغییر کنه اجرا میشه.
⚡️ زمانی استفاده میشه که component باید به تغییرات دادهی parent واکنش نشون بده.
• متد ngAfterViewInit()
بعد از اینکه view مربوط به component کامل initialize شد اجرا میشه.
⚡️ برای دسترسی به DOM و منطق viewChild خیلی کاربردیه.
• متد ngOnDestroy()
قبل از اینکه component از بین بره اجرا میشه.
⚡️ برای cleanup کردن subscriptionها، timerها و event listenerها و کلا پاک سازی حافظه استفاده شده است که بسیار مهمه که رعایت بشه برای بهبود performance سیستم.
در Angular در واقع Hook های بیشتری از موارد یاد شده وجود داره که دوست داشتید میتونیم اونا رو هم مطرح و بررسی کنیم، موارد گفته شده پرکاربردترینها بودن.
3️⃣ سوال: فرق constructor با ngOnInit() چیه؟
پاسخ:
• constructor: بیشتر برای dependency injection استفاده میشه که دیگه بهتره به جای استفاده از constructor از inject function بهتره استفاده بشه.
• ngOnInit() : برای منطق initialize شدن component
4️⃣ سوال: چرا ngOnDestroy() مهمه؟
پاسخ: اگر subscriptionها و timerها و listenerها رو cleanup نکنی، سیستم دچار memory leak میشه و مشکل performance پیش بیاد.
⚠️ نکته: به جای استفاده از unsubscribe ها در event های rx بهتره از takeUntilDestroyed استفاده کنید که خودکار بعد از destroy شدن component تون subscription رو unsubscribe کنه
📌مفهومهای Lifecycle hooks نشون میده چقدر رفتار component رو توی اپلیکیشن واقعی درست میفهمی.
➡️ ادامه: روز ۳ بهزودی… (Change Detection و OnPush Strategy) ⚡️🧠
✍🏻 منتظر نظرات و پیشنهادهای سازندهتون هستم.
#angularlifecycles
#angular
@angularcafe
❤3👍1