Inertia.js ابزار کمکی لاراول برای ساخت اپلیکیشن تک صفحه ای
Inertia js به ما کمک می کنه تا بدون پیچیدگی زیاد دو فریم ورک سمت سرور و فرانت رو به هم وصل کنیم . این ابزار یک کتابخونه نیست و فقط نقش متصل کننده رو داره !
این ابزار(لینک) در حال حاضر 3 آداپتور سمت کلاینت React, Vue.js, and Svelte و 2 آداپتور سمت سرور Laravel و Rails رو پشتیبانی میکنه.
در لاراول ورژن های جدیدتراز ۸ برای ساخت یک برنامه SPA میتونیم از inertia.js استفاده کنید.این کار با پکیجی با نام Laravel Jetstream انجام میشه که حتی به راحتی View های احراز هویت رو هم برامون پیاده سازی میکنه. با این ابزار به جای استفاده ازبلید های لاراولی از کامپوننت های جاوا اسکریپتی(vuejs) استفاده میکنیم.
برای نصب این پکیج در پروژه لاراولی :
composer require laravel/jetstream php artisan jetstream:install inertia npm run dev
داکیومنت کتابخانه در این لینک موجوده .
اگر در هنگام run کردن به مشکل برخورید به احتمال زیاد مشکل از تداخل ورژن ها هست . بهتره که یکبار پوشه node_modules رو پاک کنید و قبل از runیکبار npm install رو بزنید .
بعد از نصب برای ساخت روت جدید و ارجاع آن به فایل کامپوننتش کافیه مثل زیر عمل کنید :
Route::get('/', HomeController::class);
use Inertia\Inertia; use Illuminate\Foundation\Application; use Illuminate\Support\Facades\Route; public function __invoke(Request $request) { return Inertia::render('Welcome', [ 'canLogin' => Route::has('login'), 'canRegister' => Route::has('register'), 'laravelVersion' => Application::VERSION, 'phpVersion' => PHP_VERSION, ]); }
در ابتدا یک فایل روت به صورت invoke میسازیم و بعد با ارجاع به کنترلر در اونجا به فایل ویو پاسش میدیم . اسم فایل ویو فقط اسم خود فایل هست نه آدرس اون یعنی مثلا فقط welcome .