امروزه کمتر کسی هست که در دنیای برنامه نویسی وب و به خصوص فرانت اند، اسم فریمورک های React و Vue را نشنیده باشه. کتاب خانه های معروفی که در حال به روز رسانی و بهتر شدن هستند و بازار کار خوبی هم داخل ایران هم خارج از ایران دارند. از طرفی با دنیایی طرف هستیم که روز به روز به تعداد صفحات و برنامه های تحت وب افزوده می شود و با وجود فریمورک های محبوبی مثل React ، توسعه دهنگان علاقه مند به این حوزه کاری دست به ایجاد فریم ورک های جدیدی میزنند که معایب و مزایای خاص خود را دارند.فریمورک svelte.js یکی از این فریمورک ها می باشد که سرعت رشد خوبی را بین بقیه فریم ورک ها داشته و از محبوبیت خوبی بین برنامه نویس ها بر خوردار است.
فریمورک Svelte.js یک فریمورک جاوااسکریپت می باشد که از سال 2016 در اختیار برنامه نویسان قرار داده شده است. این فریمورک اخیرا توجه های زیادی را به خود جلب کرده و همچون فریمورک های React و Vue
به برنامه نویسان کمک می کند تا برنامه های تحت وب بهینه تری نوشته و با استفاده از ساختار های تعیین شده دردسر کمتری داشته باشند. Svelte.js دو مزیت اصلی، سرعت بالا و حجم کم را نسبت به بقیه فریمورک ها دارد که در ادامه درباره هر کدام صحبت می کنیم. مورد دیگری که Svelte.js را نسبت به بقیه فریمورک ها متفاوت می کند این است که Svelte برخلاف دیگر فریمورکها که بخش اعظمی از کار را به مرورگر میسپارند، ابتدا کدها را کامپایل و در نهایت آن را در مرورگر کاربر اجرا میکنند. اینکار سبب میشود تا برنامه سریعتر اجرا شود و حس تجربه کاربری بهتری به وجود آید.
زمان اجرای برنامه با Svelte.js سریع است، به خاطر اینکه Svelte.js تنها بخشهایی از رابط کاربری را بروز میکند که تغییر کرده است. همچنین برخلاف Vue.js و دیگر چارچوبهایی که از DOM مجازی استفاده میکنند، Svelte از یک DOM مجازی استفاده نمیکند بلکه همانند React، در اینجا نیز تغییرات با State مدیریت میشوند. اما به جای انجام دادن آن در مرورگر، کدهای یک کامپوننت را در زمان Build به vanilla JavaScript کامپایل میکند.
حجم یک برنامهی کامپایل شده با Svelte نسبت به سایر فریم ورکهای جاوا اسکرپت کمتر است. حجم کم برنامه های Svelte.js به خاطر این است که علاوه بر اینکه یک فریمورک می باشد، یک کامپایلر نیز هست. برای راه اندازی پروژه ها، Svelte.js همهی اجزای موجود در پروژه شما را کامپایل می کند. این برنامه کامپایل شده هنوز هم تعدادی کد Svelte.js را درون خود دارد و 100 درصد بهینه نمی شود ولی نسبت به باقی فریمورک ها مانند React بهینه تر می باشد و حجم کمتری را در بر میگیرد. بیشتر این فریمورک ها زمان اجرا به طور کامل روی مرورگر کاربر ارائه می شودن که پهنای باند را بالا می برند.
با نگاه اولیه به یک کامپوننت در فریمورک Svelte.js به ساختار ساده ی آن پی میبریم که کاملا بر اساس HTML, CSS, JS می باشد و بر خلاف باقی فریم ورک ها شما نیاز به یادگیری مفاهیم اضافی نیستید.
کد زیر نمونه ساده ای از یک کامپوننت در Svelte.js می باشد:
<style> h1 { color: green; } p { font-style: italic; } </style> let role = 'developer'; <h1>Hello, {role}!</h1> <p>I hope you are having a good day!</p>
همانطور که مشاده می کنید مثال Hello world بالا از سه قسمت Style برای مشخص کردن ظاهر کد ها، قسمت script برای جاوا اسکریپت و قسمت مربوط به کد های HTML تشکیل شده است.
برای مدیریت State ها در ای نفریمورک نیاز به هیچ کتابخانه جانبی نداریم و فقط با تغییر متغیر های که به صورت محلی در کامپوننت تعریف شده اند، میتوانیم باعث تغییر در خروجی برنامه و re-render شدن کامپوننت بشویم.
فریمورک Svelte.js شامل افک های پرکاربردی می شود که شامل موارد زیر می شود:
به هر حال انیمیشن ها بخش جدایی ناپذیری از طراحی صفحات وب می شوند و Svelte.js شما را از وابستگی به پکیج های خارجی بی نیاز میکند.
برای مشاده مثال هایی از این بخش میتوانید به صفحه رسمی فریمورک مراجعه کنید.
فریمورک svelte.js اولین و آخرین فریمورکی نخواهد بود که برای حوزه برنامه نویسی وب منتشر می شود. طبیعتا هر فریمورکی مزایا و عایب خاص خود را دارد و انتخاب نهایی استفاده از آن بر عهده خود شما می باشد.
نظر شخصی من اینکه با اینکه در سال ها اخیر استقبال خوبی از این فریمورک شده ولی هنوز برای اینکه سزاغ کار کردن با اون بریم زوده چون جامعه کوچکی از برنامه نویس ها داره و ممکنه برای پروژه های در مقیاس بزرگ به مشکل بخوریم و یا اینکه نسبت به فریم ورکی مثل React برای اون پکیج های کمتری برنامه نویسی شده و می تونه دردسر زا باشه.
در نهایت میتونم بگم که svelte.js به طور کلی سینتکس آسونی داره، سرعت بالایی داره، عملکرد خوب و بهینه ای داره و یک پکیج نسبتا خوبی به عنوان یک فریمورک جاوااسکریپت ارائه میده که در آینده میتونه م.فق تر عمل کنه و در مقابل فریکورک های محبوب حال حاظر قرار بگیره یا جای اون هارو بگیره.