کافه انگولار
#Angularinterview
سوال و جواب مصاحبهای Angular - روز سوم (OnPush strategy و Change Detection)
ادامهی سری روزانه مصاحبه Angular؛ این بار موضوعی رو میگیم که معمولاً مصاحبهکنندهها باهاش میزان شناختت از performance رو میسنجن.
🔹 موضوع روز ۳: Change Detection در Angular
1️⃣ سوال: Change Detection چیه؟
پاسخ: Change Detection مکانیزمیه که Angular باهاش تغییرات داده رو با UI همگام میکنه. هر وقت state اپلیکیشن تغییر کنه، Angular componentها رو بررسی میکنه و اگر لازم باشه DOM رو update میکنه.
2️⃣ سوال: Angular چه زمانی Change Detection رو اجرا میکنه؟
پاسخ: Change Detection معمولاً در این حالتها اجرا میشه:
• حالت ۱: User eventها (مثل click و input)
• حالت ۲: HTTP responseها
• حالت ۳: Timerها (مثل setTimeout و setInterval)
• حالت ۴: Promiseها و Observableها
⚠️ نکته: این جریان معمولاً با Zone.js مدیریت میشه.
3️⃣ سوال: Default Change Detection strategy چیه؟
پاسخ:
• مورد: Angular همهی componentها رو در component tree بررسی میکنه (در صورت استفاده از Zone.js)
• مورد: ساده و قابلفهمه، ولی توی اپهای بزرگ میتونه باعث مشکل performance بشه
4️⃣ سوال: OnPush Change Detection چیه؟
پاسخ: OnPush به Angular میگه فقط وقتی Change Detection رو اجرا کنه که:
• مورد: reference مربوط به input تغییر کنه
• مورد: داخل خود component یک event رخ بده
• مورد: یک observable با async pipe مقدار جدید emit کنه
📌 نتیجه: این کار معمولاً performance رو خیلی بهتر میکنه.
5️⃣ سوال: چه زمانی بهتره از OnPush استفاده کنیم؟
پاسخ:
• مورد: اپلیکیشنهای بزرگ
• مورد: componentهایی که با immutable data کار میکنن
• مورد: componentهای reusable یا presentational
6️⃣ سوال رایجِ ادامهدار تو مصاحبه
👉 چرا با OnPush بعضی وقتها UI update نمیشه؟
چون reference آبجکت تغییر نکرده - Angular به immutability تکیه میکنه.
📌 فهمیدن Change Detection یعنی تجربهی واقعی Angular داری، نه فقط بلد بودن syntax.
➡️ ادامه: روز ۴ بهزودی… (Directives - Structural vs Attribute) ⚡️🧠
#Angularinterview
@angularcafe
2 · 122 ·