Inertia.js چیست؟ ساخت برنامه‌های تک صفحه‌ای بدون ساخت Api
آموزش لاراول (Laravel) زمان مطالعه: 6 دقیقه تاریخ انتشار: 1 سال قبل

Inertia.js چیست؟ ساخت برنامه‌های تک صفحه‌ای بدون ساخت Api

امروزه تقریبا توسعه اپلیکیشن های تحت وب به سمت اپلیکیشن های تک صفحه ای سوق پیدا کرده است. شما می توانید با برای ساخت برنامه های Single Page از فریمورک React یا فریمورک Vue که فریمورک های محبوب زبان جاوا اسکریپت هستند استفاده کنید. اما گاها یادگیری و کار با این اپلیکیشن ها شاید کمی زمانبر یا در برخی از موارد برای شما دشوار باشد. چندوقتی می شود که ابزارهایی نظیر Inertia.js رونمایی شده اند. Inertia به شما کمک می کند تا در کمترین زمان ممکن و با به کارگیری فریمورک های ری اکت یا ویو جی اس و بدون ساخت هیچگونه Api و با استفاده از Routeها و Controller های مرسوم به کارگرفته شده در سمت سرور برنامه های تک صفحه‌ای مدرن بسازید. با هیرود در ادامه این ماقله همراه باشید تا به بررسی Inertia.js بپردازیم.

 

inertia.js چیست؟

inertia.js یک رویکرد جدید برای ساخت اپلیکیشن های وب مبتنی بر سرور است. سازندگان این ابزار از ان به عنوان یکپارچه مدرن نام می برند. Inertia js به شما کمک می کند تا بدون درگیر شدن با سختی های ساخت اپلیکیشن های SPA به راحتی در کوتاه ترین زمان ممکن اپلیکیشن های تک صفحه ای خود را بسازید. Inertia.js این کار با استفاده از چهارچوب های موجود در سمت سرور انجام می دهد.

Inertia.js هیچگونه از هیچگونه مسیریابی (Route) استفاده نمی کند و به API هم نیاز ی ندارد! شما می توانید مثل هیمشه و خیلی ساده با اتصال Controller ها به View ها، اپلیکیشن سمت وب خود را ایجاد کیند.

 

آیا Inertia.js یک فریمورک است؟

خیر! Inertia.js فریمورک نیست و جایگزین فریمورک های سمت سرور و سمت کلاینت هم نیست! بلکه برای کار با فریمورک های سمت سرور و فریمورک های سمت کلاینت ایجاد شده است. شما می توانید Inertia.js را مانند چسبی تصور کنید که این دو را به هم متصل می کند. Inertia.js این کار را توسط آداپتورها انجام می دهد. در حال حاضر 3 آداپتور سمت کلاینت React, Vue.js, and Svelte و 2 آداپتور سمت سرور Laravel and Rails برای inertia.js وجود دارد.

 

کاربرد های Inertia.js

Inertia.js برای چه کسانی طراحی شده است؟ Inertia برای توسعه دهندگانی که برای ساخت برنامه های خود در سمت سرور از فریمورک لاراول ، فریمورک Ruby on Rails یا فریمورک Django استفاده می کنند طراحی شده است.

اما چرا اغلب توسعه دهندگان علاقمند هستند View های سمت سرور برنامه خود را با یک فریمورک جاوا اسکریپیتی سمت کلاینت برای ساخت برنامه Single Page جایگزین کنند؟ همیشه پاسخ این است که شما باید Api بسازید زیرا بدین صورت برنامه های SPA یا همان تک صفحه ای ساخته می شود.

این یعنی شما باید یک Api با روش های موجود مانند Rest یا GraphQL بسازید، همچنین باید یک سیستم اهراز هویت (Auth) برای Api خود پیاده سازی کنید. یعنی شما باید یک satate managment را برای توسعه سمت کلاینت در نظر داشته باشید و سیایر موارد که قطعا باید آنها را در نظر داشته باشید.

Inertia.js به شما این امکان را می دهد بدون این همه پیچیدگی یک برنامه مبتنی بر جاوا اسکریپت را سریعا بسازید.

عملکرد inertia.js شباهت زیادی با یک برنامه server-side rendered دارد، منظور همان برنامه های SSR هستند که در سمت سرور رندر می شوند. ما ابتدا Controller های خود را ایجاد می کنیم، سپس داده ها را از دیتابیس دریافت می کنیم (از طریق ORM) و view ها را جهت نمایش رندر می کنیم. به جز view های موجود صفحه تشکیل شده از کامپوننت های جاوا اسکریپت است به این معنا که مانند شما تمام امکانات یک برنماه سمت کلاینت را به همراه SPA برنامه تک صفحه ای در اختیار خواهید داشت اما هیچ نیازی به ساخت Api ندارید.

این سادگی باعث ایجاد ارتباط تنگاتنگی بین سرور و سمت کلاینت می شود و این قطعا یک مزیت بسیار بزرگ در ساخت برنامه های کلاسیک سمت سرور به حساب می آید.

روش کار inertia.js

با Inertia.js شما تنها با امکانات فریمورک سمت سرور خود یک برنامه مدرن وب می سازید. شما می توانید از امکانات قدرتمند فریمورکی که در سمت سرور خود استفاده می کنید. Route های برنامه ، کنترلرهای برنامه، اهراز هویت ، سطوح دسترسی ، دریافت داده ها و سایر موارد را به راحتی پیاده سازی کنید.

تنها چیی که متفاوت است لایه View شما است. به جای استفاده از view ها در سمت سرور (مانند Blade در لاراول) View های سمت کلاینت شما کامپوننت های جاوا اسکریپت هستند. با این کار شما می توانید به راحتی View های سمت کلاینت خود را با Vue ، ری اکت یا Svelte بسازید.

اما ساخت یک برنامه تک صفحه ای حرفه ای با این فریمورک ها که بهترین عملکرد را داشته باشد به همین راحتی ها هم نیست! به طور مثال وقتی شما روی یک لینک کلیک می کنید باعث میشه تا سرور شما مجدد آن صفحه را بارگذاری کند و مرورگر کاربر به اصلاح رفرش می شود. اینجاست که Inertia وارد میشود.

در واقع در هسته اصلی inertia.js یک سیستم مسریابی (Route) سمت کلاینت وجود دارد که به شما این امکان را می دهد بدون بارگذاری مجدد صفحه، بازدید از صفحه را انجام دهید. این کار با استفاده از کامپوننت <inertia-link> انجام می شود. وقتی شما روی یک لینک کلیک می کنید. inertia آن کلیک را قطع کرده و بازدید صفحه توسط XHR انجام می شود. همچنین شما می توانید بازدید را خودتان با استفاده از Inertia.visit() در سمت جاوا اسکریپت پیاده سازی کنید.

وقتی که بازدید XHR توسط Inertia انجام می شود سرور آن را تشخیص داده به جای برگرداندن کدهای HTML یک JSON برمی گرداند که شامل کامپوننت ها و داده های ورودی (props) ها می باشد. سپس inertia.js محتوای JSON دریافتی را با کامپوننت های قبلی جایگزین کرده و satate و View های نمایش داده شده آپدیت می شود.

در نهایت شما یک برنامه تک صفحه ای تمام عیار خواهید داشت :)

 

استفاده از Inertia.js در لاراول 8

شما می توانید در لاراول 8 برای پیاده سازی View های خود و ساخت یک برنامه SPA با  لاراول از inertia.js استفاده کنید. لاراول در نسخه 8 پکیجی با نام Laravel Jetstream را معرفی کرده است که به راحتی می توانید با آن inertia را در لاراول به کار بگیرید و حتی به راحتی View های اهراز هویت از لاگین و ثبت نام و تغییر رمز عبور گرفته تا اهراز هویت دو مرحله ای را پیاده سازی کنید.

آیا از inertia.js استفاده کنیم؟

قطها این ابزار جذاب امکان بی نظیری را برای ساخت سریع تر و بهتر برنامه های تک صفحه ای SPA اراده می دهد و سازنده آن اعلام کرده است که همیشه 7شتیبانی طولانی مدت و نسخه های جدید آن اراده خواهد شد و مشکلات آن رفع می شود. همچنین با توجه به ویژگی ها آن و ارائه شدن آداپتور های واسط برای فریمورک های سمت سرور محبوب مانند لاراول و جنگو قطعا این ابزار آینده خوبی را پیش رو خواهد داشت و روز به روز به توسعه دهندگان آن اضافه خواهد شد. بد نیست که شما هم حتی برای یک بار هم شده آن را در پروژه های خود تست و در صورت رضایت مندی آن پای ثابت پروژه های خود قرار دهید!

 

بیا نتیجه بگیریم

Inertia.js ابزاری است که با آن می توانیم با امکانات سمت سرور خود از فریمورک لاراول گرفته تا فریمورک جنگو استفاده کنیم و وب اپلیکیشن مدرن تک صفحه ای بسازیم و نیازی به Api نیست! inertia آداپتور هایی جهت به کار گیری Vue و React برای پیاده سازی کامپوننت های سمت کلاینت دارد و می توانید با توجه به نیاز خود یکی از آنها را انتخاب کنید و در سمت سرور می توانید از لاراول و جنگو استفاده کنید. قطعا این ابزار آینده خوبی را تجربه خواهد کرد، اگر شما تجربه استفاده از آن را دارید آن را با ما و سایر کاربران به اشتراک بگذارید.

امتیاز به این مقاله فراموش نشه
میانگین امتیاز 5 از 5 ، کل امتیازات: 2
هشتگ ها
امیر اشرفی
نویسنده: امیر اشرفی

امیر اشرفی هستم مدیر و بنیان گذار آکادمی هیرود، حدود 10 سالی میشه که در حوزه برنامه نویسی و توسعه وب و موبایل فعالیت میکنم و تونستم تجربه خوبی در این حوزه بدست بیارم. یکی از علاقه هام انتقال تجربه هایی که در اختیار دارم به دیگرانه و باعث میشه حالم خوب بشه و اشتیاق یادگیریم افزایش پیداکنه، در واقع هیرود نتیجه حال خوبیامه :)

دوره های قهرمانی پیشنهادی

اولین قدم برنامه نویسی

اولین قدم برنامه نویسی

برنامه نویسی قطعا می تواند انتخاب مناسب ، پرچالشی و بروزی برای شغل آینده شما باشد. اگر حرفه و آموزش...

سبد خرید

سبد خرید شما خالی است.

پیش به سوی قهرمانی