بنية Electron: عمليتا التشغيل الرئيسي والعرض
افهم نموذج Electron متعدد العمليات: العملية الرئيسية لواجهات API الأصلية، وعملية العرض لواجهة React
بنية Electron: عمليتا التشغيل الرئيسي والعرض درس مجاني في React Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.
ما هو Electron؟
Electron هو إطار عمل يجمع بين Chromium (لعرض الويب) وNode.js (للوصول إلى واجهات برمجة التطبيقات الأصلية)، مما يتيح للمطورين إنشاء تطبيقات سطح مكتب متعددة المنصات باستخدام تقنيات الويب المألوفة. يعمل تطبيق React داخل نافذة متصفح Chromium، بينما يتيح لك Node.js الوصول إلى إمكانات نظام التشغيل.
العملية الرئيسية
العملية الرئيسية هي نقطة دخول تطبيق Electron؛ فهي تدير دورة حياة التطبيق، وتنشئ النوافذ وتتحكم فيها، وتتولى التفاعلات مع نظام التشغيل الأصلي. كما تنشئ عمليات العرض وتتمتع بوصول كامل إلى واجهات برمجة تطبيقات Node.js ونظام التشغيل الأساسي.
عملية العرض
تنشئ كل BrowserWindow عملية عرض خاصة بها، وتُشغّل هذه العملية Chromium وتنفّذ تطبيق React الخاص بك. توجد عملية عرض واحدة لكل نافذة، وتتصرف هذه العملية إلى حد كبير مثل علامة تبويب عادية في المتصفح؛ إذ تعرض HTML وCSS وJavaScript.
إمكانات العملية الرئيسية
نظرًا إلى أن العملية الرئيسية تتمتع بوصول كامل إلى Node.js، يمكنها قراءة نظام الملفات والكتابة فيه، وإنشاء القوائم الأصلية، وإدارة علبة النظام، وإنشاء العمليات الفرعية، والتفاعل مع الأجهزة. لا تتوفر هذه الإمكانات في عملية العرض افتراضيًا لأسباب أمنية.
عزل عملية العرض
عند ضبط contextIsolation على true (وهو الإعداد الافتراضي الحديث)، تكون عملية العرض معزولة في بيئة sandbox ولا يمكنها الوصول مباشرةً إلى واجهات برمجة تطبيقات Node.js. يمنع نموذج الأمان هذا محتوى الويب الضار من الوصول إلى نظام الملفات أو تنفيذ أوامر عشوائية على النظام.
IPC: الجسر بين العمليات
يُعد الاتصال بين العمليات (IPC) الآلية التي تتيح للعملية الرئيسية وعمليات العرض تبادل الرسائل. تستخدم العملية الرئيسية ipcMain للاستماع إلى الرسائل والرد عليها، بينما تستخدم عملية العرض ipcRenderer لإرسالها؛ وجميع الاتصالات غير متزامنة وقائمة على الرسائل.
سكريبت preload
يشغل سكريبت preload موقعًا وسيطًا خاصًا: فهو يعمل في سياق عملية العرض، لكنه يحتفظ بإمكانية الوصول إلى واجهات برمجة تطبيقات Node.js قبل تحميل محتوى الصفحة. ولذلك يشكّل الجسر الآمن بين عملية العرض المعزولة والعملية الرئيسية ذات الامتيازات.
contextBridge: إتاحة واجهة برمجية آمنة
يتيح contextBridge.exposeInMainWorld لسكريبت preload إتاحة واجهة برمجية آمنة ومنتقاة لعملية العرض. ويمكن لعملية العرض استدعاء هذه الدوال المُتاحة من دون الحصول مطلقًا على وصول مباشر إلى Node.js أو المكوّنات الداخلية في Electron، مما يحافظ على حد أمان قوي.
الوصول إلى واجهات برمجة التطبيقات المُتاحة من React
بعد أن يتيح contextBridge واجهة برمجية تحت اسم مثل "api"، يمكن لمكوّنات React استدعاؤها عبر window.api.myFunction(). يبدو ذلك شبيهًا تمامًا باستدعاء دالة JavaScript عادية، لكن الاستدعاء يمر داخليًا عبر IPC إلى العملية الرئيسية.
ملخص نموذج الأمان
يمنع نموذج الأمان في Electron صراحةً الوصول المباشر إلى Node.js من عملية العرض عند تفعيل contextIsolation. ويجب أن تمر جميع العمليات ذات الامتيازات عبر سكريبت preload وcontextBridge، مما يضمن أنه حتى في حال وقوع هجوم XSS في عملية العرض، لن يتمكن من الوصول إلى نظام الملفات.
تدفق الاتصال بين العمليات
يسير التفاعل المعتاد على النحو التالي: يستدعي مكوّن React window.api.readFile() ← يستدعي preload الدالة ipcRenderer.invoke() ← تنفّذ العملية الرئيسية ipcMain.handle() الدالة fs.readFile() ← تعود النتيجة إلى عملية العرض على هيئة Promise. تحافظ هذه البنية على نظافة عملية العرض وأمانها.
الغرض من contextBridge
ما الغرض الأساسي من contextBridge.exposeInMainWorld في Electron؟
مراجعة الدرس
يجمع Electron بين Chromium وNode.js: تدير العملية الرئيسية دورة حياة التطبيق وتتمتع بوصول كامل إلى نظام التشغيل، بينما تشغّل عمليات العرض واجهة React في بيئة معزولة. يشكّل سكريبت preload وcontextBridge الجسر الآمن، ويتيح IPC الاتصال الآمن بين العملية الرئيسية ذات الامتيازات وعملية العرض المعزولة.
الأسئلة الشائعة
هل درس «بنية Electron: عمليتا التشغيل الرئيسي والعرض» مجاني؟
نعم — نص درس «بنية Electron: عمليتا التشغيل الرئيسي والعرض» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.
ماذا ستتعلم في «بنية Electron: عمليتا التشغيل الرئيسي والعرض»؟
افهم نموذج Electron متعدد العمليات: العملية الرئيسية لواجهات API الأصلية، وعملية العرض لواجهة React تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟
لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «بنية Electron: عمليتا التشغيل الرئيسي والعرض»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟
نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بنية Electron: عمليتا التشغيل الرئيسي والعرض
- إعداد React مع Electron
- الاتصال بين العمليات باستخدام IPC
- حزم تطبيقات منصات سطح المكتب وتوزيعها