أسئلة مقابلات React التي يجب أن تتوقعها
بقلم Aaron Cao · آخر تحديث

توقع أولاً أسئلة عن hooks: useState، تبعيات useEffect، وstale closures. ثم rendering: reconciliation، ولماذا تهم key في القوائم، والتحكم في re-render باستخدام memo وuseMemo وuseCallback. تضيف معظم الجولات تمرينًا مباشرًا، غالبًا قائمة fetch-and-filter أو مربع بحث بخاصية debounce.
ما مفاهيم React التي تُسأل أكثر؟
مساحة React هائلة، وقوائم الأسئلة تتعامل مع كل زاوية وكأنها محتملة بالتساوي. لكنها ليست كذلك. يغطي هذا القسم المفاهيم التي تحدد فعليًا نتيجة معظم الجولات، حتى تتمكن من التدرب وفق التوزيع الحقيقي. تهيمن أربع مجموعات:
- آلية hooks: قواعد hooks، وما الذي يدخل في مصفوفة تبعيات useEffect، ودوال cleanup، وخطأ stale closure حيث يرى effect أو callback قيمة state قديمة.
- Rendering: ما الذي يُشغّل re-render، وكيف تقارن reconciliation الأشجار، ولماذا تهم key الثابتة في القوائم.
- تصميم state: رفع state (lifting state)، وinputs من نوع controlled مقابل uncontrolled، ومتى يناسب context بدلاً من store خارجي.
- الأداء: React.memo، وuseMemo، وuseCallback، ومتى يكون كل منها ضجيجًا لا مساعدة.
يبحث القائمون بالمقابلة عن السبب وراء كل نقطة. تلاوة أن key يجب أن تكون فريدة لا تمنح أي نقاط؛ أما شرح ما تفعله React بـkey أثناء إعادة ترتيب قائمة فيمنحها.
ما تمارين live coding التي يجب أن تتوقعها؟
تتضمن معظم جولات React بناء component صغير مباشرة. التمارين المتكررة ثابتة عبر الشركات:
- اجلب قائمة من API، اعرضها (render)، وأضف مرشّح نصي.
- أضف debounce إلى حقل بحث وألغِ الطلبات القديمة.
- ابنِ نموذجًا مع validation وinputs من نوع controlled.
- اكتب عدادًا أو مؤقتًا ينظّف effect الخاص به بشكل صحيح.
- استخرج hook مخصصًا من منطق متكرر.
قد يُطلب مثلاً من مهندس front-end يُقابَل لدور منتج من مستوى متوسط بناء قائمة fetch-and-filter، ثم يُضغط عليه بشأن حالات التحميل، وحالات الخطأ، وما يحدث عندما يُزال component (unmount) في منتصف طلب. في هذه الإضافات تُكسب الجولات؛ التمرين الأساسي هو الحد الأدنى فقط.
التدرب على هذا تحت ضغط الوقت مع أسئلة متابعة هو ما يجعله تلقائيًا؛ تتناول صفحة mock interview إجراء جلسات محددة بوقت حيث يواصل القائم بالمقابلة الضغط.
كيف تبدو أسئلة React لمستوى senior؟
تنتقل مقابلات senior من الآلية إلى الحكم (judgment). توقع أسئلة عن معمارية state: ما الذي يعيش في state الخاص بـcomponent، وما الذي ينتمي إلى store، وكيف يختلف server state عن UI state، وأين يقع caching. تصبح أسئلة أداء rendering ملموسة: إيجاد مصدر تفاعل بطيء، والاختيار بين memoization وإعادة الهيكلة، وقراءة flame graph من profiler.
يظهر server-side rendering وhydration حيث يشغّل الفريق framework فوق React: ما هو hydration، ولماذا تحدث mismatches، وما الذي يُكتسب من نقل العمل إلى الخادم. تركّز أسئلة الاختبار على الاستراتيجية، أي ما تختبره على مستوى component مقابل end to end، أكثر من التركيز على API أي مكتبة بعينها.
تُغطى صيغ المقابلات وكيف تجمّع جولة front-end عادةً هذه المراحل في interview types hub.
كيف تتدرب حتى ينتقل ذلك إلى الجولة الحقيقية؟
مشاهدة الدروس التعليمية تبني التعرّف (recognition) لا الاستدعاء (recall)، والجولة تختبر الاستدعاء تحت المراقبة. الحل هو التكرار بالشكل الفعلي للجولة: ابنِ التمارين القياسية من ملف فارغ، واسرد بصوت مسموع أثناء الكتابة، وأجب عن المقاطعات دون أن تفقد الخيط. توجد مجموعات أسئلة للـstacks المجاورة، بما في ذلك أساسيات JavaScript البسيطة التي لا تزال جولات React تُفتتح بها، في question banks hub.
ملاحظة صادقة: تجري مقابلات React دائمًا تقريبًا في محرر مشترك أو مع شاشتك مرئية، وأي شيء على تلك الشاشة يكون مرئيًا للقائم بالمقابلة. مكان المساعد هو في التحضير والتدرب، لا في جولة الشاشة المشتركة نفسها. للاستخدام المباشر المشروع، تبقى طبقة overlay الخاصة بـSubcueAI محلية على جهازك ولا ينضم أي bot إلى المكالمة؛ يوجد إعداد جلسات التدرب في صفحة tutorial.