ممشوق

Svelte هو إطار عمل برمجي مجاني ومفتوح المصدر قائم على المكونات لتطوير واجهات المستخدم الأمامية [ 2 ] ولغة [ 3 ] أنشأها ريتش هاريس ويتولى صيانتها فريق Svelte الأساسي. [ 4 ]

لا تُعدّ Svelte مكتبة جافا سكريبت متجانسة تستوردها التطبيقات، بل تقوم Svelte بتحويل قوالب HTML إلى كود متخصص يُعالج DOM مباشرةً، مما قد يُقلل حجم الملفات المنقولة ويُحسّن أداء المتصفح. [ 5 ] [ 6 ] [ 7 ] كما يُعالج المُترجم كود التطبيق، مُضيفًا استدعاءات لإعادة حساب البيانات تلقائيًا [ 2 ] وإعادة عرض عناصر واجهة المستخدم عند تعديل البيانات التي تعتمد عليها. [ 8 ] وهذا يُجنّب أيضًا العبء الزائد المرتبط بالتمثيلات الوسيطة في وقت التشغيل، مثل DOM الافتراضي ، [ 9 ] على عكس الأطر التقليدية (مثل React و Vue ) التي تُنفّذ الجزء الأكبر من عملها في وقت التشغيل، أي في المتصفح. [ 5 ] [ 8 ] [ 4 ] [ 10 ] [ 2 ] [ 9 ]

كُتب المُترجم نفسه بلغة جافا سكريبت . [ 11 ] [ 10 ] شفرة المصدر الخاصة به مرخصة بموجب رخصة MIT ومستضافة على GitHub . [ 10 ] من بين مكتبات الواجهة الأمامية المماثلة، تتميز Svelte بصغر حجم حزمة البرنامج، حيث يبلغ 2 كيلوبايت فقط. [ 12 ]

تاريخ

إن سلف Svelte هو Ractive.js، الذي أنشأه ريتش هاريس في عام 2013. [ 13 ]

تمت كتابة الإصدار الأول من Svelte بلغة جافا سكريبت وتم إصداره في 29 نوفمبر 2016. [ 14 ] وقد اختار ريتش هاريس وزملاؤه في صحيفة الغارديان اسم Svelte . [ 14 ]

تم إصدار النسخة الثانية من Svelte في 19 أبريل 2018. وقد سعت هذه النسخة إلى تصحيح ما اعتبره القائمون على الصيانة أخطاءً في النسخة السابقة، مثل استبدال الأقواس المعقوفة المزدوجة بأقواس معقوفة مفردة. [ 14 ]

تمت كتابة الإصدار الثالث من Svelte بلغة TypeScript وتم إصداره في 21 أبريل 2019. وقد أعاد هذا الإصدار التفكير في التفاعلية من خلال استخدام المترجم لتجهيز عمليات الإسناد في الخلفية. [ 2 ]

أُعلن عن إطار عمل الويب SvelteKit في أكتوبر 2020، ودخل مرحلة تجريبية في مارس 2021. [ 15 ] [ 16 ] أُصدر الإصدار 1.0 من SvelteKit في ديسمبر 2022 بعد عامين من التطوير. [ 17 ]

صدرت النسخة الرابعة من Svelte في 22 يونيو 2023. وكانت نسخة صيانة، أصغر حجمًا وأسرع من النسخة الثالثة. [ 18 ] تضمن هذا الإصدار إعادة كتابة داخلية من TypeScript إلى JavaScript، مع إضافة تعليقات توضيحية لأنواع JSDoc . [ 11 ] أثار هذا الأمر استغرابًا لدى مجتمع المطورين، وقد أوضحه مبتكر Svelte، ريتش هاريس. [ 19 ] [ 20 ]

صدرت النسخة الخامسة من Svelte في 19 أكتوبر 2024 خلال قمة Svelte لخريف 2024، حيث قام ريتش هاريس بإطلاقها مباشرةً بحضور مطوري Svelte الآخرين. كانت Svelte 5 إعادة كتابة شاملة لـ Svelte، مع تغييرات جوهرية في مفاهيم أساسية مثل التفاعلية وإمكانية إعادة الاستخدام. [ 21 ] ميزتها الرئيسية، Runes ، أعادت صياغة طريقة تعريف واستخدام الحالة التفاعلية. Runes عبارة عن وحدات ماكرو شبيهة بالدوال تُستخدم لتعريف حالة تفاعلية، أو كود يستخدم حالات تفاعلية. يستخدم المترجم هذه Runes للإشارة إلى القيم التي قد تتغير والتي تعتمد عليها حالات أخرى أو DOM. [ 22 ] كما قدمت Svelte 5 ميزة Snippets، وهي عبارة عن "مقتطفات" من الكود قابلة لإعادة الاستخدام، تُعرّف مرة واحدة ويمكن إعادة استخدامها في أي مكان آخر في المكون. [ 23 ] واجهت Svelte 5 في البداية جدلاً واسعاً بسبب كثرة التغييرات التي طرأت عليها، وبالتالي عمليات الإهمال التي نتجت بشكل أساسي عن Runes. ومع ذلك، فقد هدأت معظم هذه الأمور منذ الإعلان الأولي عن الرونية، والتحسين الإضافي لـ Svelte 5.

كما أعلن بن ماكان في قمة Svelte لخريف 2024 عن واجهة سطر الأوامر Svelte تحت اسم حزمة sv على npm . [ 24 ]

في أوائل عام 2025، أعلن فريق Svelte عن Asynchronous Svelte، وهي مجموعة ميزات تجريبية تتمحور حول التفاعل غير المتزامن في Svelte باستخدام تعابير await . [ 25 ] اعتبارًا من أغسطس 2025، أصبحت هذه الميزة متاحة عبر خيار تجريبي للمترجم. [ 26 ] تزامن ذلك مع الإصدار التجريبي للوظائف البعيدة، وهي ميزة RPC في SvelteKit، الإطار الفوقي لـ Svelte . [ 27 ]

انضمّ المساهمون الرئيسيون الأوائل في Svelte إلى فريق Conduitry مع إصدار Svelte 1، وانضمّ Tan Li Hau في عام 2019، وانضمّ Ben McCann في عام 2020. [ 14 ] انضمّ Rich Harris وSimon Holthausen إلى Vercel للعمل على Svelte بدوام كامل في عام 2022. [ 28 ] انضمّ Dominic Gannaway إلى Vercel من الفريق الأساسي لـ React للعمل على Svelte بدوام كامل في عام 2023. [ 29 ]

بناء الجملة

يتم تعريف تطبيقات ومكونات Svelte في .svelteملفات، وهي ملفات HTML موسعة بصيغة القوالب التي تعتمد على JavaScript وتشبه JSX .

يتم الوصول إلى الميزات الأساسية لـ Svelte من خلال الرموز، التي تبدو من الناحية التركيبية كالدوال، ولكن يستخدمها المترجم كوحدات ماكرو . وتشمل هذه الرموز ما يلي:

  • الرمز $stateالروني، المستخدم لإعلان قيمة حالة تفاعلية
  • الرمز $derivedالروني، المستخدم للإعلان عن حالة تفاعلية مشتقة من حالة واحدة أو أكثر
  • الرمز $effect، المستخدم للإعلان عن التعليمات البرمجية التي يتم إعادة تشغيلها كلما تغيرت تبعياتها

ابتداءً من Svelte 5 ، أدخل إطار العمل تحسينًا جذريًا على التفاعلية، حيث استبدل تعريفات التفاعلية السابقة `$:` برموز جديدة مثل $state`$` $derivedو`$` و` $effect$`. [ 30 ]$effect يُستخدم الرمز `$` الآن لعمليات ما بعد العرض دون تعديل الحالة، بينما يُستخدم $derivedالرمز `$` للحسابات التي تعتمد على قيم تفاعلية أخرى. يهدف هذا التغيير إلى تبسيط النموذج الذهني للتفاعلية وجعل منطق المكونات أكثر وضوحًا. [ 31 ]

بالإضافة إلى ذلك، يمكن استخدام هذه الصيغة لإنشاء قوالب في عناصر ومكونات HTML، [ 32 ] على غرار القوالب النصية في جافا سكريبت. كما يمكن استخدامها في خصائص العناصر لأغراض مثل ربط البيانات ثنائي الاتجاه ، ومستمعي الأحداث ، وتنسيق CSS . فيما يلي مثال لقائمة مهام تم إنشاؤها باستخدام Svelte:{ JavaScript code }

<script> let value = $ state ( ) ; const todos = $ state ( [ ] ); const all = $ derived ( todos.length ); const done = $ derived ( todos.filter ( todo = > todo.done ) .length ) ; function onsubmit ( e ) { e.preventDefault ( ) ; todos.push ( { text : value , done : false } ) ; e.target.reset ( ) ; } </script><span> قائمة المهام </ span > <small> مكتملة { تم}/{الكل } < / small > <br /> {#each todos as { text, done }, index} < input type = "checkbox" bind:checked = "{todos[index].done}" id = "{text} " /> < label for = " {text}" class:done > { text} </label> < button onclick = " {() = > todos.splice(index, 1)} " >حذف </ button > <br /> {/كل} < form { onsubmit } > <br /> < label for = "input" > إضافة مهمة < / label > <br /> < input type = " text " name = " input" bind:value / > </form><style> span { font - size : 20px ; font - weight : bold ; }. done { text-decoration-line : line-through ; } </ style >

المشاريع المرتبطة

قام مطورو Svelte بإنشاء SvelteKit كطريقة رسمية لبناء المشاريع باستخدام Svelte. وهو إطار عمل متكامل على نمط Next.js / Nuxt ، يقلل بشكل كبير من كمية التعليمات البرمجية المرسلة إلى المتصفح. وكان المطورون قد أنشأوا سابقًا Sapper، وهو الإصدار السابق لـ SvelteKit. [ 35 ]

يُشرف القائمون على صيانة Svelte أيضًا على عدد من التكاملات لمشاريع برمجية شائعة ضمن مؤسسة Svelte، بما في ذلك تكاملات مع Vite وRollup و Webpack وTypeScript و VS Code وأدوات مطوري Chrome و ESLint وPrettier. [ 36 ] كما أنشأت العديد من المشاريع الخارجية، مثل Storybook، تكاملات مع Svelte وSvelteKit.

اعتبارًا من يونيو 2026، فإن أحدث إصدار هو 2.67.0 .

تأثير

استوحى Vue.js تصميم واجهة برمجة التطبيقات (API) ومكونات الملف الواحد من Ractive.js، وهو الإصدار السابق لـ Svelte. [ 13 ]

التبني

يحظى إطار عمل Svelte بإشادة واسعة من المطورين. فقد تصدّر التصنيف في العديد من استطلاعات رأي المطورين واسعة النطاق، واختير كأكثر إطار عمل ويب مفضل على موقع Stack Overflow لعام 2021، وإطار عمل واجهة المستخدم الأمامية الأكثر رضا من المطورين لعام 2020 وفقًا لموقع State of JS. [ 37 ] [ 38 ]

تُظهر استطلاعات الرأي الحديثة استمرار رضا المطورين عن Svelte، حيث حافظ استطلاع حالة جافا سكريبت لعام 2024 على مكانته بين أكثر أطر عمل الواجهة الأمامية شهرةً. [ 39 ] وأفاد استطلاع مطوري Stack Overflow لعام 2024 أن 73% من المطورين الذين استخدموا Svelte يرغبون في مواصلة العمل به، وأشار إلى أن فريق Stack Overflow نفسه استخدم Svelte لبناء موقع نتائج استطلاع المطورين لعام 2024. [ 40 ]

اعتمدت العديد من شركات الإنترنت البارزة نظام Svelte ، بما في ذلك صحيفة نيويورك تايمز ، وجوجل ، وآبل ، وسبوتيفاي ، وراديو فرنسا ، وسكوير ، وياهو ، وبايت دانس ، وراكوتين ، وبلومبيرغ ، ورويترز ، وإيكيا ، وفيسبوك ، ولوجيتك ، وبريف .

تقوم مجموعة مجتمعية، تتألف في الغالب من غير القائمين على الصيانة، تُعرف باسم جمعية Svelte، بتنظيم مؤتمر Svelte Summit، وكتابة نشرة إخبارية خاصة بـ Svelte، واستضافة بودكاست Svelte، واستضافة دليل لأدوات Svelte ومكوناتها وقوالبها. [ 45 ]

انظر أيضاً

مراجع

  1. "svelte@5.38.3 - Github" . 23 أغسطس 2025.
  2. 1 2 3 4 هاريس، ريتش (22 أبريل 2019). "Svelte 3: إعادة التفكير في التفاعلية" . svelte.dev . تم الاسترجاع في 7 أغسطس 2021 .
  3. هاريس، ريتش (26 نوفمبر 2018). "الحقيقة حول Svelte" . GitHub Gist . تم الاسترجاع في 21 ديسمبر 2022 .
  4. 1 2 كريل، بول (2 ديسمبر 2016). "إطار عمل Svelte النحيف والسريع يضع جافا سكريبت على نظام غذائي" . إنفوورلد .
  5. 1 2 "React vs. Svelte, the JavaScript build-time framework" . react-etc.net . 30 نوفمبر 2016. مؤرشف من الأصل في 10 يوليو 2017. تم الاطلاع عليه في 27 ديسمبر 2025 .
  6. "أهم 8 أطر عمل جافا سكريبت للتعلم في عام 2019" . تم الاطلاع عليه بتاريخ 27 ديسمبر 2025 .
  7. وانغ، وينهاو (12 سبتمبر 2025). "فهم نموذج DOM الافتراضي وسبب عدم استخدام Svelte/SolidJS له" . تم الاطلاع عليه في 27 ديسمبر 2025 .
  8. 1 2 "إطار عمل Svelte 3 للواجهة الأمامية ينقل التفاعلية إلى لغة جافا سكريبت، أسئلة وأجوبة مع ريتش هاريس" . InfoQ .
  9. 1 2 هاريس، ريتش (27-12-2018). "نموذج DOM الافتراضي هو عبء إضافي بحت" . svelte.dev .
  10. 1 2 3 "GitHub - sveltejs/svelte: تطبيقات ويب محسّنة إلكترونياً" . 11 يناير 2020 - عبر GitHub.
  11. 1 2 "تحويل TS إلى JSDoc #8569" . GitHub.com .
  12. Frontendeng.dev (2023-08-01). "Svelte vs React: أي إطار عمل أفضل؟" . frontendeng.dev .
  13. 1 2 Świstak, Tomasz (2020-11-19). "حول إطار عمل Svelte JavaScript" . مدونة. ValueLogic . مؤرشف من الأصل في 2022-03-27 . تم الاسترجاع في 2021-06-10 . بالمناسبة، تأثرت بنية Vue بـ Ractive.js، وهو سلف مباشر لـ Svelte.
  14. 1 2 3 4 "أصول Svelte: فيلم وثائقي عن جافا سكريبت" . يوتيوب . 21 يونيو 2022. تم الاطلاع عليه بتاريخ 9 يوليو 2022 .
  15. "ريتش هاريس: تطوير مواقع الويب المستقبلية" . يوتيوب . ١٩ أكتوبر ٢٠٢٠. مؤرشف من الأصل في ١٢ ديسمبر ٢٠٢١. تم الاطلاع عليه في ٣ أغسطس ٢٠٢١ .
  16. هاريس، ريتش (23 مارس 2021). "SvelteKit في مرحلة تجريبية عامة" . svelte.dev . تم الاطلاع عليه بتاريخ 3 أغسطس 2021 .
  17. "الاستشارة حول SvelteKit 1.0" . 14-12-2022 . تم الاطلاع عليه بتاريخ 16-12-2022 .
  18. فريق Svelte (22 يونيو 2023). "الإعلان عن Svelte 4" . svelte.dev . تاريخ الاسترجاع: 8 أغسطس 2023 .
  19. "تحويل TS إلى JSDoc" . Hacker News (news.ycombinator.com) . 2023-05-10.
  20. «يا إلهي، لم أتوقع أن يتصدر طلب إعادة هيكلة داخلي قائمة Hacker News. ...» Hacker News (news.ycombinator.com) . 10 مايو 2023.
  21. "Svelte 5 قيد التطوير" . svelte.dev . 22 أكتوبر 2024.
  22. "تقديم الرونية" . svelte.dev . 20 سبتمبر 2023.
  23. "{#snippet ...}" . Docs. svelte.dev .
  24. ماكان، بن (24-10-2024). "تقديم واجهة سطر الأوامر الجديدة لـ Svelte" . svelte.dev . تم الاطلاع عليه بتاريخ 20-12-2024 .
  25. هاريس، ريتش (2025-04-28). "Svelte غير المتزامن · sveltejs/svelte · مناقشة رقم 15845" . GitHub .
  26. "انتظر • المستندات • Svelte" . تم الاسترجاع في 13 أغسطس 2025 .
  27. هولتهاوزن، سيمون (17-06-2025). "الوظائف عن بُعد · sveltejs/kit · مناقشة رقم 13897" . جيت هاب .
  28. هاريس، ريتش (11 نوفمبر 2021). "اليوم يومٌ مهمٌ لـ @sveltejs: لقد انضممتُ إلى @vercel للعمل عليه بدوامٍ كامل!" . تويتر . تم الاطلاع عليه بتاريخ 4 سبتمبر 2022 .
  29. "trueadm/status/1640761270566633472" . X (تويتر سابقًا) . تم الاسترجاع في 30 سبتمبر 2023 .
  30. "Svelte 5 is Alive" . Svelte.dev . 2023-11-16 . تم الاطلاع عليه بتاريخ 2025-10-20 .
  31. "الانتقال إلى Svelte 5 - إصلاح شامل للتفاعلية" . Svar.dev . 18-04-2024 . تم الاطلاع عليه بتاريخ 20-10-2025 .
  32. "صفحة دروس Svelte" . svelte.dev . تم الاطلاع عليها بتاريخ 2022-07-06 .
  33. أيقونة "@sveltejs/kitTypeScript"، تشير إلى أن هذه الحزمة تحتوي على تعريفات أنواع مدمجة 1.15.5 . npmjs . تم الاطلاع عليه بتاريخ 26 نوفمبر 2024 .
  34. "@sveltejs/kit@1.15.5" . GitHub . تم الاطلاع عليه بتاريخ 26 نوفمبر 2024 .
  35. هاريس، ريتش (31 ديسمبر 2017). "سابير: نحو إطار عمل مثالي لتطبيقات الويب" . svelte.dev . تم الاطلاع عليه بتاريخ 29 نوفمبر 2022 .
  36. "Svelte" . GitHub . تم الاسترجاع في 2021-08-03 .
  37. "استطلاع رأي مطوري ستاك أوفرفلو لعام 2021" . ستاك أوفرفلو . مؤرشف من الأصل بتاريخ 25 يونيو 2022. تم الاطلاع عليه بتاريخ 26 أكتوبر 2021 .
  38. "حالة جافا سكريبت 2020: أطر عمل الواجهة الأمامية" . 2020.stateofjs.com . تم الاطلاع عليه بتاريخ 26-10-2021 .
  39. "حالة جافا سكريبت 2024: أطر عمل الواجهة الأمامية" . 2024.stateofjs.com . تم الاطلاع عليه بتاريخ 28-06-2025 .
  40. "استطلاع رأي مطوري ستاك أوفرفلو لعام 2024" . ستاك أوفرفلو . تم الاطلاع عليه بتاريخ 28-06-2025 .
  41. «نقلت إذاعة فرنسا موقعها إلى SvelteKit» . reddit.com . 2 سبتمبر 2021. تم الاطلاع عليه بتاريخ 4 يونيو 2024 .
  42. "Svelte • تطبيقات ويب محسّنة إلكترونياً" . svelte.dev . تم الاطلاع عليه بتاريخ 2021-08-03 .
  43. "مواقع الويب التي تستخدم Svelte - Wappalyzer" . www.wappalyzer.com . تم الاطلاع عليه بتاريخ 3 أغسطس 2021 .
  44. "ملفك الشخصي، تجربتك المنزلية" . yourhome.fb.com . تم الاطلاع عليه بتاريخ 1 ديسمبر 2021 .
  45. "الصفحة الرئيسية - Svelte Society" . sveltesociety.dev . تم الاطلاع عليه بتاريخ 2021-08-03 .