عن المشروع

Solid مكتبة JavaScript مفتوحة المصدر لبناء واجهات المستخدم. خيارها التصميمي المميّز هو رفض DOM الافتراضي: تُصرّف القوالب إلى عُقد DOM حقيقية، وتُطبَّق التحديثات عبر تفاعلات تفاعلية دقيقة، بحيث عندما تتغيّر قطعة من الحالة لا يُعاد تشغيل إلا الكود المعتمد عليها. النموذج التفاعلي يعرّف المطوّرون الحالة ببدائيات مثل createSignal، الذي يعيد دالة وصول ومُعيِّنًا. تُعبَّر القيم المشتقة كدوال عادية تستدعي دالة الوصول، ويكون تتبّع الاعتماديات تلقائيًا — إذ تؤدي قراءة الحالة التفاعلية إلى اشتراك الحساب المحيط بها فيها. المكوّنات دوال عادية تُنفَّذ مرة واحدة لإعداد العرض، وهو ما يصفه README بأنه نموذج ذهني “التصيير مرة واحدة”. توضّح الوثائق كيف يستخرج المُصرِّف HTML الثابت إلى قالب ويُدرج تعبيرات ديناميكية بحيث يمكن لعقدة نصية واحدة أن تتحدّث دون إعادة تصيير عنصرها الأب. ميزات الإطار توفّر المكتبة JSX، والـ fragments، وContext، وPortals، وSuspense، والتصيير المتدفق من جانب الخادم، والترطيب التدريجي، وError Boundaries، والتصيير المتزامن. تُقدَّم إدارة الحالة المدمجة عبر Context وStores، وتتيح Resources التعامل مع البيانات المحمّلة من الخادم مثل غيرها من الحالة التفاعلية وتصييرها بشكل متجاوب مع Suspense والتصيير المتزامن. يشير README إلى دعم SSR وبيئات بلا خادم مع التدفق والترطيب التدريجي. التوافق وقابلية التوسعة يوصف Solid بأنه متماثل (تصيير العميل والخادم) وعالمي، مع مُصيّرات مخصّصة متاحة لاستخدامه في بيئات أخرى. ويوصف بأنه صديق لمكوّنات الويب وقادر على تأليف عناصر مخصّصة، مع حزمة مرافقة solid-element. يتكامل مع JSX وTypeScript، ومع منظومة Vite؛ يمكن إنشاء قوالب رسمية لـ JavaScript وTypeScript عبر degit، ويُعد preset Babel ‏(babel-preset-solid) مع اعتماد solid-js هو الإعداد الموصى به، مع اشتراط TypeScript لـ jsx: “preserve” وjsxImportSource: “solid-js”. تتوفّر ساحة تجريبية تفاعلية ودليل تعليمي على موقع المشروع. الأهداف المعلنة يدّعي README حزمة صغيرة قابلة لاهتزاز الشجرة وأداء قريبًا من JavaScript الخام المحسّن، بالإشارة إلى JS Framework Benchmark ومقارنات حجم الحزمة. ويشدّد على البساطة وقابلية التركيب وقلة القواعد الخفية، مشجّعًا على الكود التصريحي والفصل بين القراءة والكتابة، مع الإشارة إلى أن مكتبات JavaScript الأصلية مثل D3 يمكن استخدامها مباشرة لأن التجريدات في حدها الأدنى. المجتمع والدعم يستهدف الدعم آخر عامين من إصدارات Firefox وSafari وChrome وEdge الحديثة على سطح المكتب والجوال، مع Node LTS وأحدث بيئات تشغيل Deno وCloudflare Worker على الخادم؛ ولا يُدعم IE والمتصفحات المشابهة المنتهية صراحةً. تحظى الاختبارات بدعم SauceLabs. يحافظ المشروع على مجتمعات Discord وReddit، وقاعدة من المساهمين، وصفحة تمويل على Open Collective، ومنظومة متنامية من البدائيات المجتمعية ومكتبات المكوّنات وأدوات وقت البناء.